From 1936f2470ad5bab14d6a12d3d4eaf3aa36039f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Belmant?= Date: Fri, 6 Oct 2023 15:19:06 +0200 Subject: [PATCH] Update to Vulkan 1.3.240 (#48) * Update to Vulkan 1.3.240 * Remove unused lib file * Try fixing CI, update compat entry for Vulkan_Headers_jll * Try a different JULIA_VULKAN_LIBNAME for MacOS * Append .dylib to library name * Export StdVideo symbols * Comment out CI on Windows It is getting stuck on the SDK download, let's prevent it from running a very long job for now * Update to latest Clang * Also export STD_VIDEO constants/enums * Update manifest --- .github/workflows/ci.yml | 57 +- Project.toml | 2 +- gen/Manifest.toml | 240 +- gen/Project.toml | 4 +- gen/generator.jl | 15 +- lib/aarch64-apple-darwin20.jl | 13573 +++++++++++++++++++++---------- lib/aarch64-linux-gnu.jl | 13153 ++++++++++++++++++++---------- lib/aarch64-linux-musl.jl | 13153 ++++++++++++++++++++---------- lib/armv7l-linux-gnueabihf.jl | 12925 ++++++++++++++++++++--------- lib/armv7l-linux-musleabihf.jl | 12925 ++++++++++++++++++++--------- lib/i686-linux-gnu.jl | 12925 ++++++++++++++++++++--------- lib/i686-linux-musl.jl | 12925 ++++++++++++++++++++--------- lib/i686-w64-mingw32.jl | 13131 ++++++++++++++++++++---------- lib/powerpc64le-linux-gnu.jl | 13153 ++++++++++++++++++++---------- lib/x86_64-apple-darwin14.jl | 13573 +++++++++++++++++++++---------- lib/x86_64-linux-gnu.jl | 13153 ++++++++++++++++++++---------- lib/x86_64-linux-musl.jl | 13153 ++++++++++++++++++++---------- lib/x86_64-unknown-freebsd.jl | 13153 ++++++++++++++++++++---------- lib/x86_64-w64-mingw32.jl | 13125 ++++++++++++++++++++---------- src/LibVulkan.jl | 4 +- 20 files changed, 126980 insertions(+), 57362 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2c7ee31..1dfd524 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: pull_request: env: JuliaVersion: 1.6 - VulkanSDKVersion: 1.2.148.1 + VulkanSDKVersion: 1.3.239.0 JULIA_GITHUB_ACTIONS_CI: ON jobs: ubuntu-latest-x64: @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@v3 - name: Download & Extract Vulkan SDK run: | - wget --no-cookies -O ../vulkansdk-linux-x86_64-${{env.VulkanSDKVersion}}.tar.gz https://sdk.lunarg.com/sdk/download/${{env.VulkanSDKVersion}}/linux/vulkansdk-linux-x86_64-${{env.VulkanSDKVersion}}.tar.gz?u= + wget --no-cookies -O ../vulkansdk-linux-x86_64-${{env.VulkanSDKVersion}}.tar.gz https://sdk.lunarg.com/sdk/download/${{env.VulkanSDKVersion}}/linux/vulkansdk-linux-x86_64-${{env.VulkanSDKVersion}}.tar.gz tar -zxf ../vulkansdk-linux-x86_64-${{env.VulkanSDKVersion}}.tar.gz -C ../ - name: Install xvfb for GLFW run: sudo apt-get install xvfb && Xvfb :99 & @@ -32,31 +32,31 @@ jobs: env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - windows-latest-x64: - runs-on: windows-latest - steps: - - uses: actions/checkout@v3 - - name: Set Environment variables - run: echo "VULKAN_SDK=C:\VulkanSDK\${{env.VulkanSDKVersion}}" >> $GITHUB_ENV - - name: Download & Install Vulkan SDK - run: | - Invoke-WebRequest -Uri https://sdk.lunarg.com/sdk/download/${{env.VulkanSDKVersion}}/windows/VulkanSDK-${{env.VulkanSDKVersion}}-Installer.exe?u= -OutFile ../vulkan-sdk-${{env.VulkanSDKVersion}}.exe - $installer = Start-Process -FilePath ../vulkan-sdk-${{env.VulkanSDKVersion}}.exe -Wait -PassThru -ArgumentList @("/S"); - $installer.WaitForExit(); - Invoke-WebRequest -Uri https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-runtime.exe -OutFile ../vulkan-runtime.exe - $installer = Start-Process -FilePath ../vulkan-runtime.exe -Wait -PassThru -ArgumentList @("/S"); - $installer.WaitForExit(); - - uses: julia-actions/setup-julia@v1 - with: - version: ${{env.JuliaVersion}} - arch: x64 - - uses: julia-actions/julia-buildpkg@latest - - uses: julia-actions/julia-runtest@latest - env: - DISPLAY: :99 - - uses: julia-actions/julia-uploadcodecov@latest - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + # windows-latest-x64: + # runs-on: windows-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Set Environment variables + # run: echo "VULKAN_SDK=C:\VulkanSDK\${{env.VulkanSDKVersion}}" >> $GITHUB_ENV + # - name: Download & Install Vulkan SDK + # run: | + # Invoke-WebRequest -Uri https://sdk.lunarg.com/sdk/download/${{env.VulkanSDKVersion}}/windows/VulkanSDK-${{env.VulkanSDKVersion}}-Installer.exe -OutFile ../vulkan-sdk-${{env.VulkanSDKVersion}}.exe + # $installer = Start-Process -FilePath ../vulkan-sdk-${{env.VulkanSDKVersion}}.exe -Wait -PassThru -ArgumentList @("/S"); + # $installer.WaitForExit(); + # Invoke-WebRequest -Uri https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-runtime.exe -OutFile ../vulkan-runtime.exe + # $installer = Start-Process -FilePath ../vulkan-runtime.exe -Wait -PassThru -ArgumentList @("/S"); + # $installer.WaitForExit(); + # - uses: julia-actions/setup-julia@v1 + # with: + # version: ${{env.JuliaVersion}} + # arch: x64 + # - uses: julia-actions/julia-buildpkg@latest + # - uses: julia-actions/julia-runtest@latest + # env: + # DISPLAY: :99 + # - uses: julia-actions/julia-uploadcodecov@latest + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} macos-latest-x64: runs-on: macos-latest @@ -69,9 +69,10 @@ jobs: echo JULIA_VULKAN_SDK_SEARCH_PATH=$VULKAN_SDK/lib >> $GITHUB_ENV echo VK_LAYER_PATH=$VULKAN_SDK/share/vulkan/explicit_layer.d >> $GITHUB_ENV echo VK_ICD_FILENAMES=$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json >> $GITHUB_ENV + echo JULIA_VULKAN_LIBNAME=libvulkan.1.dylib >> $GITHUB_ENV - name: Download & Extract Vulkan SDK run: | - wget --no-cookies -O ../vulkansdk-macos-${{env.VulkanSDKVersion}}.dmg https://sdk.lunarg.com/sdk/download/${{env.VulkanSDKVersion}}/mac/vulkansdk-macos-${{env.VulkanSDKVersion}}.dmg?u= + wget --no-cookies -O ../vulkansdk-macos-${{env.VulkanSDKVersion}}.dmg https://sdk.lunarg.com/sdk/download/${{env.VulkanSDKVersion}}/mac/vulkansdk-macos-${{env.VulkanSDKVersion}}.dmg hdiutil attach ../vulkansdk-macos-${{env.VulkanSDKVersion}}.dmg cp -r /Volumes/vulkansdk-macos-${{env.VulkanSDKVersion}} ../ hdiutil detach /Volumes/vulkansdk-macos-${{env.VulkanSDKVersion}} diff --git a/Project.toml b/Project.toml index 7c91fe6..2f62b81 100644 --- a/Project.toml +++ b/Project.toml @@ -7,7 +7,7 @@ Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb" Vulkan_Headers_jll = "8d446b21-f3ad-5576-a034-752265b9b6f9" [compat] -Vulkan_Headers_jll = "1.2.177" +Vulkan_Headers_jll = "1.3.240" julia = "1.3" [extras] diff --git a/gen/Manifest.toml b/gen/Manifest.toml index 677a2ab..775ee3d 100644 --- a/gen/Manifest.toml +++ b/gen/Manifest.toml @@ -1,257 +1,291 @@ # This file is machine-generated - editing it directly is not advised -[[ArgTools]] +julia_version = "1.11.0-DEV" +manifest_format = "2.0" +project_hash = "7bdc85188ce7eaad35edd65b0d6cae8d20eb84d7" + +[[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" -[[Artifacts]] +[[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" -[[Base64]] +[[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -[[CEnum]] -git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" +[[deps.CEnum]] +git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.4.1" +version = "0.4.2" -[[Clang]] +[[deps.Clang]] deps = ["CEnum", "Clang_jll", "Downloads", "Pkg", "TOML"] -git-tree-sha1 = "1a485576e0bf5658a04a570c3215743b0b3069d6" +git-tree-sha1 = "d78c2973d7a752be377fe173bc9ff2dc2d9c3ed6" uuid = "40e3b903-d033-50b4-a0cc-940c62c95e31" -version = "0.14.1" +version = "0.17.6" -[[Clang_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "libLLVM_jll"] -git-tree-sha1 = "a5923c06de3178dd755f4b9411ea8922a7ae6fb8" +[[deps.Clang_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "TOML", "Zlib_jll", "libLLVM_jll"] +git-tree-sha1 = "1b72866ec1a54e7e4593f7a137c892bb365570f4" uuid = "0ee61d77-7f21-5576-8119-9fcc46b10100" -version = "11.0.1+3" +version = "15.0.7+8" -[[Dates]] +[[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" -[[Downloads]] -deps = ["ArgTools", "LibCURL", "NetworkOptions"] +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" -[[Expat_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "ae13fcbc7ab8f16b0856729b050ef0c446aa3492" +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.4.4+0" +version = "2.5.0+0" -[[InteractiveUtils]] +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -[[JLLWrappers]] -deps = ["Preferences"] -git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.4.1" +version = "1.5.0" -[[LibCURL]] +[[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" -[[LibCURL_jll]] +[[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.0.1+1" -[[LibGit2]] -deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" -[[LibSSH2_jll]] +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.7.1+0" + +[[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" -[[Libdl]] +[[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" -[[Libffi_jll]] +[[deps.Libffi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" version = "3.2.2+1" -[[Libgcrypt_jll]] +[[deps.Libgcrypt_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" version = "1.8.7+0" -[[Libgpg_error_jll]] +[[deps.Libgpg_error_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" -[[Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "42b62845d70a619f063a7da093d995ec8e15e778" +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+1" +version = "1.17.0+0" -[[Logging]] +[[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" -[[Markdown]] +[[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" -[[MbedTLS_jll]] +[[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" -[[MozillaCACerts_jll]] +[[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" -[[NetworkOptions]] +[[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" -[[Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.11.0" -[[Preferences]] +[[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "de893592a221142f3db370f48290e3a2ef39998f" +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.2.4" +version = "1.4.1" -[[Printf]] +[[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" -[[REPL]] +[[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" -[[Random]] -deps = ["Serialization"] +[[deps.Random]] +deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -[[SHA]] +[[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" -[[Serialization]] +[[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" -[[Sockets]] +[[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" -[[TOML]] +[[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" -[[Tar]] +[[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" -[[UUIDs]] +[[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" -[[Unicode]] +[[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" -[[Vulkan_Headers_jll]] +[[deps.Vulkan_Headers_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "a30e36fcb36f6cbac325ee0b75066c7301170ddd" +git-tree-sha1 = "bc6c02948bfaac887e155670338804d38f6c9717" uuid = "8d446b21-f3ad-5576-a034-752265b9b6f9" -version = "1.3.207+0" +version = "1.3.240+0" -[[Wayland_jll]] -deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "3e61f0b86f90dacb0bc0e73a0c5a83f6a8636e23" +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" -version = "1.19.0+0" +version = "1.21.0+1" -[[XML2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "1acf5bdf07aa0907e0a37d3718bb88d4b687b74a" +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.9.12+0" +version = "2.11.5+0" -[[XSLT_jll]] +[[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" version = "1.1.34+0" -[[Xorg_libX11_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] -git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" -version = "1.6.9+4" +version = "1.8.6+0" -[[Xorg_libXau_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" -version = "1.0.9+4" +version = "1.0.11+0" -[[Xorg_libXdmcp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" -version = "1.1.3+4" +version = "1.1.4+0" -[[Xorg_libXext_jll]] +[[deps.Xorg_libXext_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" version = "1.3.4+4" -[[Xorg_libXrandr_jll]] +[[deps.Xorg_libXrandr_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" version = "1.5.2+4" -[[Xorg_libXrender_jll]] +[[deps.Xorg_libXrender_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" version = "0.9.10+4" -[[Xorg_libpthread_stubs_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" -version = "0.1.0+3" +version = "0.1.1+0" -[[Xorg_libxcb_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] -git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.13.0+3" +version = "1.15.0+0" -[[Xorg_xorgproto_jll]] +[[deps.Xorg_xorgproto_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "9a9eb8ce756fe0bca01b4be16da770e18d264972" uuid = "c4d99508-4286-5418-9131-c86396af500b" version = "2019.2.0+2" -[[Xorg_xtrans_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" -version = "1.4.0+3" +version = "1.5.0+0" -[[Zlib_jll]] +[[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" -[[libLLVM_jll]] +[[deps.libLLVM_jll]] deps = ["Artifacts", "Libdl"] uuid = "8f36deef-c2a5-5394-99ed-8e07531fb29a" +version = "15.0.7+8" -[[nghttp2_jll]] +[[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" -[[p7zip_jll]] +[[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" diff --git a/gen/Project.toml b/gen/Project.toml index 624e70c..3448b37 100644 --- a/gen/Project.toml +++ b/gen/Project.toml @@ -10,5 +10,5 @@ Xorg_libxcb_jll = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" Xorg_xorgproto_jll = "c4d99508-4286-5418-9131-c86396af500b" [compat] -Clang = "0.14" -Vulkan_Headers_jll = "1.3.207" +Clang = "0.17" +Vulkan_Headers_jll = "1.3.240" diff --git a/gen/generator.jl b/gen/generator.jl index e5654d8..43c698f 100755 --- a/gen/generator.jl +++ b/gen/generator.jl @@ -11,21 +11,22 @@ using Xorg_libXrender_jll cd(@__DIR__) # get include directory & vulkan.h -const VK_INCLUDE = joinpath(Vulkan_Headers_jll.artifact_dir, "include", "vulkan") -const VK_HEADERS = [joinpath(VK_INCLUDE, "vulkan.h")] +VK_INCLUDE_BASE = joinpath(Vulkan_Headers_jll.artifact_dir, "include") +VK_INCLUDE = joinpath(VK_INCLUDE_BASE, "vulkan") +VK_HEADERS = [joinpath(VK_INCLUDE, "vulkan.h")] # config extensions for different platforms # X-ref: https://github.com/SaschaWillems/Vulkan/blob/master/CMakeLists.txt -const VK_LINUX_EXTENSION_COMMON = [ +VK_LINUX_EXTENSION_COMMON = [ # "-DVK_USE_PLATFORM_DIRECTFB_EXT", # no JLL package "-DVK_USE_PLATFORM_WAYLAND_KHR", "-DVK_USE_PLATFORM_XCB_KHR", "-DVK_USE_PLATFORM_XLIB_KHR", "-DVK_USE_PLATFORM_XLIB_XRANDR_EXT", ] -const VK_MACOS_EXTENSION_COMMON = ["-DVK_USE_PLATFORM_MACOS_MVK", "-DVK_USE_PLATFORM_METAL_EXT"] -const VK_WIN_EXTENSION_COMMON = ["-DVK_USE_PLATFORM_WIN32_KHR"] -const VK_EXTENSIONS_MAP = Dict( +VK_MACOS_EXTENSION_COMMON = ["-DVK_USE_PLATFORM_MACOS_MVK", "-DVK_USE_PLATFORM_METAL_EXT"] +VK_WIN_EXTENSION_COMMON = ["-DVK_USE_PLATFORM_WIN32_KHR"] +VK_EXTENSIONS_MAP = Dict( # "aarch64-apple-darwin20" => vcat(VK_MACOS_EXTENSION_COMMON, "-DVK_USE_PLATFORM_DIRECTFB_EXT"), # "x86_64-apple-darwin14" => vcat(VK_MACOS_EXTENSION_COMMON, "-DVK_USE_PLATFORM_DIRECTFB_EXT"), "aarch64-apple-darwin20" => VK_MACOS_EXTENSION_COMMON, @@ -95,6 +96,8 @@ for target in JLLEnvs.JLL_ENV_TRIPLES append!(args, VK_EXTENSIONS_MAP[target]) + # add header directory to detect `vk_video` headers + push!(args, "-I$VK_INCLUDE_BASE") ctx = create_context(VK_HEADERS, args, options) build!(ctx) diff --git a/lib/aarch64-apple-darwin20.jl b/lib/aarch64-apple-darwin20.jl index d7b8cb5..4676c88 100644 --- a/lib/aarch64-apple-darwin20.jl +++ b/lib/aarch64-apple-darwin20.jl @@ -140,6 +140,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -147,6 +153,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -396,6 +403,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -407,6 +434,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -423,6 +456,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -560,6 +596,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -571,7 +613,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -637,6 +678,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -659,12 +709,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -672,21 +756,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -711,24 +805,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -834,6 +992,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -890,7 +1049,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -900,6 +1063,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -919,9 +1087,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -969,6 +1141,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -979,17 +1153,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1262,6 +1433,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1346,12 +1518,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1511,6 +1690,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1611,8 +1821,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1647,8 +1857,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1785,10 +1998,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1799,7 +2015,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1821,6 +2036,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1855,15 +2073,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1896,6 +2125,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1933,14 +2164,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1994,6 +2227,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2006,6 +2242,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2017,6 +2254,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2035,12 +2273,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2053,6 +2298,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2101,7 +2347,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2139,15 +2393,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2174,6 +2431,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2182,6 +2441,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2190,6 +2450,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2197,6 +2462,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2205,8 +2473,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2217,8 +2486,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,6 +2507,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2262,6 +2535,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6028,6 +6305,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6867,6 +7147,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7959,6 +8240,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8324,6403 +8606,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo - -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} - -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits - -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags - -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits - -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo - -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end - -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end - -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags - -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits - -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo - -struct VkImportSemaphoreFdInfoKHR +struct VkVideoDecodeH264ProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR end -struct VkSemaphoreGetFdInfoKHR +struct VkVideoDecodeH264CapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} - -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} end -struct VkPhysicalDevicePushDescriptorPropertiesKHR +struct VkVideoDecodeH264DpbSlotInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} - -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) -end +const VkRenderingFlagsKHR = VkRenderingFlags -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) -end +const VkRenderingFlagBitsKHR = VkRenderingFlagBits -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) -end +const VkRenderingInfoKHR = VkRenderingInfo -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) -end +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout end -struct VkPresentRegionsKHR +struct VkAttachmentSampleCountInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate - -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType - -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags - -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry - -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +const VkFormatProperties2KHR = VkFormatProperties2 -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkImageFormatProperties2KHR = VkImageFormatProperties2 -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 -const VkSubpassDependency2KHR = VkSubpassDependency2 +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 -const VkSubpassEndInfoKHR = VkSubpassEndInfo +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo -const VkFenceImportFlagsKHR = VkFenceImportFlags +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint -end +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo -struct VkFenceGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) end -struct VkPerformanceCounterKHR +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint end -struct VkPerformanceCounterDescriptionKHR +struct VkMemoryFdPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + memoryTypeBits::UInt32 end -struct VkQueryPoolPerformanceCreateInfoKHR +struct VkMemoryGetFdInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) end -struct VkAcquireProfilingLockInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) end -struct VkPerformanceQuerySubmitInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - counterPassIndex::UInt32 -end +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) end -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) -end +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior - -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin - -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -struct VkSurfaceFormat2KHR +struct VkPhysicalDevicePushDescriptorPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + maxPushDescriptors::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR -end +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures -struct VkDisplayPlaneProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 end -struct VkDisplayModeProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} end -struct VkDisplayPlaneInfo2KHR +struct VkPresentRegionsKHR sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} end -struct VkDisplayPlaneCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR -end +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 -const VkMemoryRequirements2KHR = VkMemoryRequirements2 +const VkAttachmentDescription2KHR = VkAttachmentDescription2 -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 +const VkAttachmentReference2KHR = VkAttachmentReference2 -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} +const VkSubpassDescription2KHR = VkSubpassDescription2 -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} +const VkSubpassDependency2KHR = VkSubpassDependency2 -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +const VkSubpassEndInfoKHR = VkSubpassEndInfo -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo - -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion - -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion - -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange - -const VkChromaLocationKHR = VkChromaLocation - -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkExternalFencePropertiesKHR = VkExternalFenceProperties -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkAcquireProfilingLockFlagsKHR = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkPhysicalDevicePerformanceQueryFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkPerformanceCounterKHR sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkPerformanceCounterDescriptionKHR sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkQueryPoolPerformanceCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType - -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits - -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags - -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +const VkPointClippingBehaviorKHR = VkPointClippingBehavior -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 -end +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D -end +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} -end +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR sType::VkStructureType pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 + surface::VkSurfaceKHR end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR +struct VkSurfaceCapabilities2KHR sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 + surfaceCapabilities::VkSurfaceCapabilitiesKHR end -struct VkPhysicalDeviceFragmentShadingRateKHR +struct VkSurfaceFormat2KHR sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + surfaceFormat::VkSurfaceFormatKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) end -struct VkSurfaceProtectedCapabilitiesKHR +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR sType::VkStructureType pNext::Ptr{Cvoid} - supportsProtected::VkBool32 + displayProperties::VkDisplayPropertiesKHR end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR +struct VkDisplayPlaneProperties2KHR sType::VkStructureType pNext::Ptr{Cvoid} - presentWait::VkBool32 + displayPlaneProperties::VkDisplayPlanePropertiesKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures - -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures - -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo - -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo - -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) end -const VkDeferredOperationKHR_T = Cvoid +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) -end +const VkMemoryRequirements2KHR = VkMemoryRequirements2 -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) -end +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 -end +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo -struct VkPipelineInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline -end +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion -struct VkPipelineExecutablePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 -end +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion -struct VkPipelineExecutableInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 -end +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) end -struct VkPipelineExecutableStatisticKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) end -struct VkPipelineExecutableInternalRepresentationKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures -struct VkPipelineLibraryCreateInfoKHR +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} -end - -struct VkPhysicalDevicePresentIdFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentId::VkBool32 -end - -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 - -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 - -const VkAccessFlags2KHR = VkAccessFlags2 - -const VkAccessFlagBits2KHR = VkAccessFlagBits2 - -const VkSubmitFlagBitsKHR = VkSubmitFlagBits - -const VkSubmitFlagsKHR = VkSubmitFlags - -const VkMemoryBarrier2KHR = VkMemoryBarrier2 - -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 - -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 - -const VkDependencyInfoKHR = VkDependencyInfo - -const VkSubmitInfo2KHR = VkSubmitInfo2 - -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo - -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo - -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features - -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} - -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) end -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties - -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements - -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} - -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkDebugReportCallbackEXT_T = Cvoid - -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end -struct VkDebugReportCallbackCreateInfoEXT +struct VkVideoDecodeH265ProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) + stdProfileIdc::StdVideoH265ProfileIdc end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 end -struct VkPipelineRasterizationStateRasterizationOrderAMD +struct VkDeviceQueueGlobalPriorityCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD + globalPriority::VkQueueGlobalPriorityKHR end -struct VkDebugMarkerObjectNameInfoEXT +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} + globalPriorityQuery::VkBool32 end -struct VkDebugMarkerObjectTagInfoEXT +struct VkQueueFamilyGlobalPriorityPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} -end +const VkDriverIdKHR = VkDriverId -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +const VkConformanceVersionKHR = VkConformanceVersion -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) -end +const VkResolveModeFlagsKHR = VkResolveModeFlags -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) -end +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) -end +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) -end +const VkSemaphoreTypeKHR = VkSemaphoreType -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) -end +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) -end +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) end -struct VkDedicatedAllocationImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) end -struct VkDedicatedAllocationBufferCreateInfoNV +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkPipelineFragmentShadingRateStateCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceFragmentShadingRateKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} - -const VkCuFunctionNVX_T = Cvoid - -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures -struct VkCuModuleCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} -end +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures -struct VkCuFunctionCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} -end +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo -struct VkCuLaunchInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} -end +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkDeferredOperationKHR_T = Cvoid -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler -end +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} -struct VkImageViewAddressPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize -end - -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} - -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -struct VkTextureLODGatherFormatPropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 end -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +struct VkPipelineExecutableInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 + pipeline::VkPipeline + executableIndex::UInt32 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] end -struct VkExternalMemoryImageCreateInfoNV +struct VkPipelineExecutableStatisticKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR end -struct VkExportMemoryAllocateInfoNV +struct VkPipelineExecutableInternalRepresentationKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -struct VkValidationFlagsEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end -struct VkImageViewASTCDecodeModeEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - decodeMode::VkFormat +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -const VkConditionalRenderingFlagsEXT = VkFlags +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures -struct VkConditionalRenderingBeginInfoEXT +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPresentIdKHR sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPhysicalDevicePresentIdFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + presentId::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +const VkAccessFlags2KHR = VkAccessFlags2 -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkSubmitFlagsKHR = VkSubmitFlags -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkPipelineViewportWScalingStateCreateInfoNV +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -const VkSurfaceCounterFlagsEXT = VkFlags +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -struct VkDisplayPowerInfoEXT +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT + fragmentShaderBarycentric::VkBool32 end -struct VkDeviceEventInfoEXT +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 end -struct VkDisplayEventInfoEXT +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + shaderSubgroupUniformControlFlow::VkBool32 end -struct VkSwapchainCounterCreateInfoEXT +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) -end +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -struct VkPresentTimesInfoGOOGLE +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 + +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features + +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties + +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements + +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} + +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkPipelineViewportSwizzleStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} +const VkDebugReportCallbackEXT_T = Cvoid + +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} + +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +const VkDebugReportFlagsEXT = VkFlags -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkPipelineDiscardRectangleStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} + +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end + +struct VkPipelineRasterizationStateRasterizationOrderAMD sType::VkStructureType pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 + rasterizationOrder::VkRasterizationOrderAMD end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +struct VkDebugMarkerObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkXYColorEXT - x::Cfloat - y::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -const VkDebugUtilsMessengerEXT_T = Cvoid +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -struct VkDebugUtilsLabelEXT +struct VkDedicatedAllocationImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + dedicatedAllocation::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkDedicatedAllocationBufferCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + dedicatedAllocation::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkDedicatedAllocationMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + image::VkImage + buffer::VkBuffer end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +struct VkPipelineRasterizationStateStreamCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkCuModuleNVX_T = Cvoid -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkCuFunctionNVX_T = Cvoid -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end + +struct VkImageViewHandleInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -struct VkMultisamplePropertiesEXT +struct VkImageViewAddressPropertiesNVX sType::VkStructureType pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} + supportsTextureGatherLODBiasAMD::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -struct VkDrmFormatModifierPropertiesListEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +struct VkPhysicalDeviceCornerSampledImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + cornerSampledImage::VkBool32 end -struct VkImageDrmFormatModifierPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 -end - -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 -end - -struct VkDrmFormatModifierPropertiesList2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end +const VkExternalMemoryFeatureFlagsNV = VkFlags -const VkValidationCacheEXT_T = Cvoid +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +end -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkValidationCacheCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkValidationCacheCreateInfoEXT +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits - -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags - -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo - -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures - -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties - -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo - -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport - -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPipelineRobustnessCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +const VkConditionalRenderingFlagsEXT = VkFlags + +struct VkConditionalRenderingBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 + conditionalRenderingEnable::VkBool32 end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} + +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} + +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkAccelerationStructureNV_T = Cvoid +const VkSurfaceCounterFlagsEXT = VkFlags -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSurfaceCapabilities2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -const VkGeometryTypeNV = VkGeometryTypeKHR +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +end -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR +struct VkDisplayPowerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + powerState::VkDisplayPowerStateEXT +end -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +struct VkDeviceEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceEvent::VkDeviceEventTypeEXT end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkDisplayEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayEvent::VkDisplayEventTypeEXT end -const VkGeometryFlagsKHR = VkFlags +struct VkSwapchainCounterCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCounters::VkSurfaceCounterFlagsEXT +end -const VkGeometryFlagsNV = VkGeometryFlagsKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -const VkGeometryInstanceFlagsKHR = VkFlags +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +end -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +end -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +end -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkBuildAccelerationStructureFlagsKHR = VkFlags +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +end -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkRayTracingShaderGroupCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -struct VkRayTracingPipelineCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -struct VkGeometryTrianglesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -struct VkGeometryAABBNV +struct VkPresentTimesInfoGOOGLE sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} + +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) end -struct VkGeometryNV - sType::VkStructureType - pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) end -struct VkAccelerationStructureInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + perViewPositionAllComponents::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV - sType::VkStructureType - pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 end -struct VkAccelerationStructureMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags + +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPipelineViewportSwizzleStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 end -const VkTransformMatrixNV = VkTransformMatrixKHR +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) -end +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) -end +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) -end +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkDebugUtilsLabelEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkDebugUtilsObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkDebugUtilsMessengerCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkDebugUtilsMessengerCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} + +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - imageViewType::VkImageViewType +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkFilterCubicImageViewImageFormatPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +end -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -struct VkImportMemoryHostPointerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -struct VkMemoryHostPointerPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +const VkSamplerReductionModeEXT = VkSamplerReductionMode -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 -end +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -const VkPipelineCompilerControlFlagsAMD = VkFlags +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat +end -struct VkPipelineCompilerControlCreateInfoAMD +struct VkSampleLocationsInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkCalibratedTimestampInfoEXT +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end + +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} + +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -struct VkPhysicalDeviceShaderCorePropertiesAMD +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end + +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 + advancedBlendCoherentOperations::VkBool32 end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +struct VkDrmFormatModifierPropertiesListEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} +end -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkImageDrmFormatModifierPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + drmFormatModifier::UInt64 end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end + +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} +end + +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +end + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +end + +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +end + +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +end + +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +end + +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +end + +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end + +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end + +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +end + +struct VkPhysicalDeviceShadingRateImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 +end + +struct VkPhysicalDeviceShadingRateImagePropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 +end + +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end + +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end + +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} + +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end + +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end + +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end + +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end + +const VkAccelerationStructureNV_T = Cvoid + +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} + +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +end + +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +end + +const VkGeometryTypeNV = VkGeometryTypeKHR + +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end + +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR + +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end + +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR + +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkGeometryFlagsKHR = VkFlags + +const VkGeometryFlagsNV = VkGeometryFlagsKHR + +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR + +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkGeometryInstanceFlagsKHR = VkFlags + +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR + +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR + +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkBuildAccelerationStructureFlagsKHR = VkFlags + +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR + +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR + +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 +end + +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 +end + +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize +end + +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize +end + +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV +end + +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR +end + +struct VkAccelerationStructureInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} +end + +struct VkAccelerationStructureCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV +end + +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} +end + +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} +end + +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV +end + +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 +end + +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} +end + +const VkTransformMatrixNV = VkTransformMatrixKHR + +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat +end + +const VkAabbPositionsNV = VkAabbPositionsKHR + +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +end + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +end + +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +end + +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end + +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end + +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end + +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end + +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end + +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end + +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +end + +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +end + +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +end + +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +end + +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 +end + +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTestEnable::VkBool32 +end + +struct VkPhysicalDeviceImageViewImageFormatInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageViewType::VkImageViewType +end + +struct VkFilterCubicImageViewImageFormatPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 +end + +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR + +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} +end + +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} + +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end + +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +end + +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +end + +const VkPipelineCompilerControlFlagsAMD = VkFlags + +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD +end + +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +end + +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +end + +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +end + +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end + +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end + +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end + +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end + +struct VkDeviceMemoryOverallocationCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD +end + +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxVertexAttribDivisor::UInt32 +end + +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 +end + +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits + +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags + +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo + +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback + +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 +end + +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +end + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +end + +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + imageFootprint::VkBool32 +end + +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} +end + +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags +end + +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} + +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end + +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end + +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 +end + +const VkPerformanceConfigurationINTEL_T = Cvoid + +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} + +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} + +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] +end + +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL +end + +struct VkInitializePerformanceApiInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + pUserData::Ptr{Cvoid} +end + +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL +end + +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt64 +end + +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 +end + +struct VkPerformanceOverrideInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 +end + +struct VkPerformanceConfigurationAcquireInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceConfigurationTypeINTEL +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +end + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +end + +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end + +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end + +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end + +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end + +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +end + +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 +end + +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 +end + +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} + +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 +end + +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 +end + +struct VkRenderPassFragmentDensityMapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMapAttachment::VkAttachmentReference +end + +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures + +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures + +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties + +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +end + +const VkShaderCorePropertiesFlagsAMD = VkFlags + +struct VkPhysicalDeviceShaderCoreProperties2AMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 +end + +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 +end + +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end + +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} +end + +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryPriority::VkBool32 +end + +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat +end + +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end + +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 +end + +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress +end + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} + +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end + +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +end + +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} +end + +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 +end + +struct VkCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV +end + +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 +end + +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrixSupportedStages::VkShaderStageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +end + +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end + +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags + +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end + +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV +end + +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end + +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end + +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 +end + +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcrImageArrays::VkBool32 +end + +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceProvokingVertexPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 +end + +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT +end + +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 +end + +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 +end + +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 +end + +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures + +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 +end + +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end + +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end + +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end + +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end + +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +end + +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +end + +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end + +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end + +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end + +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end + +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end + +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end + +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end + +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end + +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end + +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end + +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end + +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end + +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end + +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end + +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 +end + +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR +end + +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D +end + +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end + +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 +end + +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} +end + +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end + +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end + +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT +end + +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) +end + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) +end + +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + +const VkIndirectCommandsLayoutNV_T = Cvoid + +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} + +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end + +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end + +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags + +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end + +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end + +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end + +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end + +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end + +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end + +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 +end + +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 +end + +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize +end + +struct VkIndirectCommandsLayoutTokenNV + sType::VkStructureType + pNext::Ptr{Cvoid} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} +end + +struct VkIndirectCommandsLayoutCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} +end + +struct VkGeneratedCommandsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize +end + +struct VkGeneratedCommandsMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} + +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +end + +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +end + +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +end + +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +end + +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +end + +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +end + +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +end + +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +end + +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +end + +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +end + +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 +end + +struct VkCommandBufferInheritanceViewportScissorInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} +end + +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + texelBufferAlignment::VkBool32 +end + +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR +end + +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D +end + +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end + +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceMemoryReport::VkBool32 +end + +struct VkDeviceMemoryReportCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +end + +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 +end + +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize +end + +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat +end + +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 +end + +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 +end + +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 +end + +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 +end + +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 +end + +const VkPrivateDataSlotEXT = VkPrivateDataSlot + +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags + +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures + +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo + +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +end + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +end + +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +end + +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +end + +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end + +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end + +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +end + +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +end + +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end + +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 +end + +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV +end + +const VkAccelerationStructureKHR_T = Cvoid + +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} + +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize +end + +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t +end + +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 +end + +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat +end + +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags +end + +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] +end + +struct VkDescriptorGetInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkDescriptorType + data::VkDescriptorDataEXT +end + +struct VkBufferCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkImageCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage +end + +struct VkImageViewCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView +end + +struct VkSamplerCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampler::VkSampler +end + +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + opaqueCaptureDescriptorData::Ptr{Cvoid} +end + +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV +end + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end + +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end + +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end + +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end + +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) +end + +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) +end + +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + graphicsPipelineLibrary::VkBool32 +end + +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 +end + +struct VkGraphicsPipelineLibraryCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkGraphicsPipelineLibraryFlagsEXT +end + +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 +end + +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end + +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +end + +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end + +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +end + +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] +end + +struct VkAccelerationStructureGeometryMotionTrianglesDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkDeviceOrHostAddressConstKHR +end + +struct VkAccelerationStructureMotionInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV +end + +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end + +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageFootprint::VkBool32 + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} + ycbcr2plane444Formats::VkBool32 end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + fragmentDensityMapDeferred::VkBool32 end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkCheckpointDataNV +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) -end +const VkImageCompressionFlagsEXT = VkFlags -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) -end +const VkImageCompressionFixedRateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + imageCompressionControl::VkBool32 end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} - -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) - return getfield(x, f) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} - -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val - end - ref[] +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkInitializePerformanceApiInfoINTEL +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkDeviceFaultCountsEXT sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - marker::UInt64 +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -struct VkPerformanceStreamMarkerInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - marker::UInt32 +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -struct VkPerformanceOverrideInfoINTEL +struct VkDeviceFaultInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -struct VkPerformanceConfigurationAcquireInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) -end +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mutableDescriptorType::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) -end +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +struct VkMutableDescriptorTypeCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexInputDynamicState::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkVertexInputBindingDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} + +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + reportAddressBinding::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + depthClipControl::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} - -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + renderPass::VkRenderPass + subpass::UInt32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + subpassShading::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + invocationMask::VkBool32 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + externalMemoryRDMA::VkBool32 end -struct VkMemoryPriorityAllocateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - priority::Cfloat +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} + +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +end + +const VkPipelineInfoEXT = VkPipelineInfoKHR + +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + pipelineIdentifier::NTuple{16, UInt8} end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + pipelinePropertiesIdentifier::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) +end -struct VkBufferDeviceAddressCreateInfoEXT +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) +end + +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + multisampledRenderToSingleSampled::VkBool32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} +struct VkSubpassResolvePerformanceQueryEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + optimal::VkBool32 +end -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkMultisampledRenderToSingleSampledInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -const VkToolPurposeFlagsEXT = VkToolPurposeFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +end + +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkValidationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + colorWriteEnable::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR + +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + minLod::VkBool32 end -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkImageViewMinLodCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + minLod::Cfloat end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + multiDraw::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +struct VkPhysicalDeviceMultiDrawPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxMultiDrawCount::UInt32 end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} + +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +const VkMicromapEXT_T = Cvoid -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +const VkMicromapEXT = Ptr{VkMicromapEXT_T} + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkPipelineRasterizationLineStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkMicromapBuildInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkMicromapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} +struct VkCopyMemoryToMicromapInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} +struct VkCopyMicromapInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +struct VkMicromapBuildSizesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +struct VkAccelerationStructureTrianglesOpacityMicromapEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) -end +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} - -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags - -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -struct VkGraphicsShaderGroupCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end - -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkGeneratedCommandsMemoryRequirementsInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkSamplerBorderColorComponentMappingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + components::VkComponentMapping + srgb::VkBool32 end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pageableDeviceLocalMemory::VkBool32 end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetHostMapping::VkBool32 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +struct VkDescriptorSetBindingReferenceVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +struct VkDescriptorSetLayoutHostMappingInfoVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + nonSeamlessCubeMap::VkBool32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + fragmentDensityMapOffset::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize end -const VkDeviceMemoryReportFlagsEXT = VkFlags +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + indirectCopy::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + supportedQueues::VkQueueFlags end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -struct VkDeviceDeviceMemoryReportCreateInfoEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} + +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) +end + +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) +end + +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) +end + +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) +end + +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV +end + +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + memoryDecompression::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + linearColorAttachment::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + imageCompressionControlSwapchain::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkImageViewSampleWeightCreateInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceImageProcessingFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -const VkPrivateDataSlotEXT = VkPrivateDataSlot +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 +end -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + dynamicPrimitiveTopologyUnrestricted::VkBool32 +end -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp +end -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} -struct VkDeviceDiagnosticsConfigCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipControl::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPipelineViewportDepthClipControlCreateInfoEXT +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 + disallowMerging::VkBool32 end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -struct VkSubpassShadingPipelineCreateInfoHUAWEI +struct VkRenderPassCreationFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - subpassShading::VkBool32 +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkDirectDriverLoadingInfoLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -const VkRemoteAddressNV = Ptr{Cvoid} - -struct VkMemoryGetRemoteAddressInfoNV +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkShaderModuleIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + identifierSize::UInt32 + identifier::NTuple{32, UInt8} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) -end +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +const VkOpticalFlowSessionNV_T = Cvoid -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) -end +const VkOpticalFlowGridSizeFlagsNV = VkFlags -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) -end +const VkOpticalFlowUsageFlagsNV = VkFlags -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) -end +const VkOpticalFlowSessionCreateFlagsNV = VkFlags -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) -end +const VkOpticalFlowExecuteFlagsNV = VkFlags -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) +end + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -struct VkPhysicalDeviceMultiDrawPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + legacyDithering::VkBool32 end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 + pipelineProtectedAccess::VkBool32 end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 + tileProperties::VkBool32 end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT +struct VkTilePropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} + +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkDescriptorSetBindingReferenceVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + amigoProfiling::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} - -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +struct VkAmigoProfilingSubmitInfoSEC + sType::VkStructureType + pNext::Ptr{Cvoid} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + multiviewPerViewViewports::VkBool32 end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 + rayTracingInvocationReorder::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + shaderCoreBuiltins::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 + pipelineLibraryGroupHandles::VkBool32 end -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - @cenum VkBuildAccelerationStructureModeKHR::UInt32 begin VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 -end - @cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end const VkAccelerationStructureCreateFlagsKHR = VkFlags -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} -end - -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) -end - -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end - -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end - -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} - -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] -end - struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15198,72 +19705,272 @@ function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMi ccall((:vkCmdTraceRaysIndirectKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) end -function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) + ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) + ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) + ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +struct VkPhysicalDeviceRayQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayQuery::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkMacOSSurfaceCreateFlagsMVK = VkFlags + +struct VkMacOSSurfaceCreateInfoMVK + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkMacOSSurfaceCreateFlagsMVK + pView::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMacOSSurfaceMVK ) ( VkInstance instance , const VkMacOSSurfaceCreateInfoMVK * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateMacOSSurfaceMVK = Ptr{Cvoid} + +function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateMacOSSurfaceMVK, libvulkan), VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +const CAMetalLayer = Cvoid + +const VkMetalSurfaceCreateFlagsEXT = VkFlags + +struct VkMetalSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkMetalSurfaceCreateFlagsEXT + pLayer::Ptr{CAMetalLayer} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMetalSurfaceEXT ) ( VkInstance instance , const VkMetalSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateMetalSurfaceEXT = Ptr{Cvoid} + +function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateMetalSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +const MTLDevice_id = Ptr{Cvoid} + +const MTLCommandQueue_id = Ptr{Cvoid} + +const MTLBuffer_id = Ptr{Cvoid} + +const MTLTexture_id = Ptr{Cvoid} + +const __IOSurface = Cvoid + +const IOSurfaceRef = Ptr{__IOSurface} + +const MTLSharedEvent_id = Ptr{Cvoid} + +@cenum VkExportMetalObjectTypeFlagBitsEXT::UInt32 begin + VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 1 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 2 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 4 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 8 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 16 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 32 + VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkExportMetalObjectTypeFlagsEXT = VkFlags + +struct VkExportMetalObjectCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + exportObjectType::VkExportMetalObjectTypeFlagBitsEXT +end + +struct VkExportMetalObjectsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) - ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +struct VkExportMetalDeviceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mtlDevice::MTLDevice_id end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) - ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +struct VkExportMetalCommandQueueInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + queue::VkQueue + mtlCommandQueue::MTLCommandQueue_id end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) - ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +struct VkExportMetalBufferInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + mtlBuffer::MTLBuffer_id end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +struct VkImportMetalBufferInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mtlBuffer::MTLBuffer_id end -struct VkPhysicalDeviceRayQueryFeaturesKHR +struct VkExportMetalTextureInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - rayQuery::VkBool32 + image::VkImage + imageView::VkImageView + bufferView::VkBufferView + plane::VkImageAspectFlagBits + mtlTexture::MTLTexture_id end -const VkMacOSSurfaceCreateFlagsMVK = VkFlags - -struct VkMacOSSurfaceCreateInfoMVK +struct VkImportMetalTextureInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkMacOSSurfaceCreateFlagsMVK - pView::Ptr{Cvoid} + plane::VkImageAspectFlagBits + mtlTexture::MTLTexture_id end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMacOSSurfaceMVK ) ( VkInstance instance , const VkMacOSSurfaceCreateInfoMVK * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateMacOSSurfaceMVK = Ptr{Cvoid} - -function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateMacOSSurfaceMVK, libvulkan), VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkExportMetalIOSurfaceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + ioSurface::IOSurfaceRef end -function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkImportMetalIOSurfaceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ioSurface::IOSurfaceRef end -const CAMetalLayer = Cvoid - -const VkMetalSurfaceCreateFlagsEXT = VkFlags +struct VkExportMetalSharedEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + event::VkEvent + mtlSharedEvent::MTLSharedEvent_id +end -struct VkMetalSurfaceCreateInfoEXT +struct VkImportMetalSharedEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkMetalSurfaceCreateFlagsEXT - pLayer::Ptr{CAMetalLayer} + mtlSharedEvent::MTLSharedEvent_id end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMetalSurfaceEXT ) ( VkInstance instance , const VkMetalSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateMetalSurfaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkExportMetalObjectsEXT ) ( VkDevice device , VkExportMetalObjectsInfoEXT * pMetalObjectsInfo ) +const PFN_vkExportMetalObjectsEXT = Ptr{Cvoid} -function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateMetalSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkExportMetalObjectsEXT(device, pMetalObjectsInfo) + ccall((:vkExportMetalObjectsEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkExportMetalObjectsInfoEXT}), device, pMetalObjectsInfo) end -function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkExportMetalObjectsEXT(device, pMetalObjectsInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkExportMetalObjectsInfoEXT}), device, pMetalObjectsInfo) end const VULKAN_H_ = 1 @@ -15278,12 +19985,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15304,14 +20009,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15364,6 +20071,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15634,6 +20389,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15772,6 +20593,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15798,10 +20625,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -15982,6 +20821,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16524,6 +21369,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16550,7 +21407,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16584,6 +21441,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16598,7 +21461,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16608,6 +21471,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16644,12 +21525,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16662,12 +21561,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16686,6 +21579,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16716,6 +21615,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16728,6 +21639,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16748,12 +21665,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16772,12 +21707,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16786,10 +21745,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16808,6 +21871,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_MACOS_H_ = 1 const VK_MVK_macos_surface = 1 @@ -16824,3 +21893,9 @@ const VK_EXT_METAL_SURFACE_SPEC_VERSION = 1 const VK_EXT_METAL_SURFACE_EXTENSION_NAME = "VK_EXT_metal_surface" +const VK_EXT_metal_objects = 1 + +const VK_EXT_METAL_OBJECTS_SPEC_VERSION = 1 + +const VK_EXT_METAL_OBJECTS_EXTENSION_NAME = "VK_EXT_metal_objects" + diff --git a/lib/aarch64-linux-gnu.jl b/lib/aarch64-linux-gnu.jl index aa738a8..56081ed 100644 --- a/lib/aarch64-linux-gnu.jl +++ b/lib/aarch64-linux-gnu.jl @@ -158,6 +158,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -165,6 +171,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -414,6 +421,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -425,6 +452,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -441,6 +474,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -578,6 +614,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -589,7 +631,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -655,6 +696,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -677,12 +727,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -690,21 +774,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -729,24 +823,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -852,6 +1010,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -908,7 +1067,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -918,6 +1081,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -937,9 +1105,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -987,6 +1159,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -997,17 +1171,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1280,6 +1451,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1364,12 +1536,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1529,6 +1708,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1629,8 +1839,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1665,8 +1875,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1803,10 +2016,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1817,7 +2033,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1839,6 +2054,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1873,15 +2091,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1914,6 +2143,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1951,14 +2182,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2012,6 +2245,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2024,6 +2260,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2035,6 +2272,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2053,12 +2291,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2071,6 +2316,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2119,7 +2365,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2157,15 +2411,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2192,6 +2449,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2200,6 +2459,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2208,6 +2468,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2215,6 +2480,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2223,8 +2491,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,8 +2504,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2253,6 +2525,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2280,6 +2553,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6046,6 +6323,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6885,6 +7165,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7977,6 +8258,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8342,6403 +8624,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} + +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +const VkDeferredOperationKHR_T = Cvoid + +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end + +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end + +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end + +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end + +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} +end + +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +struct VkPhysicalDevicePresentIdFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentId::VkBool32 +end + +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 + +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 + +const VkAccessFlags2KHR = VkAccessFlags2 + +const VkAccessFlagBits2KHR = VkAccessFlagBits2 + +const VkSubmitFlagBitsKHR = VkSubmitFlagBits + +const VkSubmitFlagsKHR = VkSubmitFlags + +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 +end + +struct VkCheckpointData2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 +end + +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 +end + +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end + +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 + +const VkCopyImageInfo2KHR = VkCopyImageInfo2 + +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 + +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 + +const VkBlitImageInfo2KHR = VkBlitImageInfo2 + +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo - -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT_T = Cvoid -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkDebugReportFlagsEXT = VkFlags -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} +end -struct VkImportSemaphoreFdInfoKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkSemaphoreGetFdInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end + +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -struct VkPresentRegionsKHR +struct VkPipelineRasterizationStateStreamCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkCuModuleNVX_T = Cvoid -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkCuFunctionNVX_T = Cvoid -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -const VkSubpassDependency2KHR = VkSubpassDependency2 +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} + +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkFenceImportFlagsKHR = VkFenceImportFlags - -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFenceGetFdInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + supportsTextureGatherLODBiasAMD::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +end -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryHandleTypeFlagsNV = VkFlags + +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceCounterDescriptionKHR +struct VkValidationFlagsEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -struct VkQueryPoolPerformanceCreateInfoKHR +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures + +struct VkImageViewASTCDecodeModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} -end - -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} + decodeMode::VkFormat end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkConditionalRenderingFlagsEXT = VkFlags -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkSurfaceFormat2KHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkDisplayPlaneProperties2KHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + powerState::VkDisplayPowerStateEXT end -struct VkDisplayModeProperties2KHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + deviceEvent::VkDeviceEventTypeEXT end -struct VkDisplayPlaneInfo2KHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + displayEvent::VkDisplayEventTypeEXT end -struct VkDisplayPlaneCapabilities2KHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkChromaLocationKHR = VkChromaLocation +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo - -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 -end - -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties - -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits - -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures - -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures - -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkRenderPassSampleLocationsBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -const VkDeferredOperationKHR_T = Cvoid +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkPipelineInfoKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkPipelineExecutablePropertiesKHR +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPipelineExecutableInfoKHR +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} + +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutableStatisticKHR +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkShaderModuleValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -struct VkPipelineLibraryCreateInfoKHR +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkPresentIdKHR +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -const VkAccessFlags2KHR = VkAccessFlags2 +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -const VkSubmitFlagsKHR = VkSubmitFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkDependencyInfoKHR = VkDependencyInfo +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkSubmitInfo2KHR = VkSubmitInfo2 +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +const VkAccelerationStructureNV_T = Cvoid -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) -end +const VkGeometryInstanceFlagsKHR = VkFlags -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +const VkTransformMatrixNV = VkTransformMatrixKHR -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) -end +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT_T = Cvoid +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} - -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + representativeFragmentTestEnable::VkBool32 end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + imageViewType::VkImageViewType end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkMemoryHostPointerPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + memoryTypeBits::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + minImportedHostPointerAlignment::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPipelineCompilerControlFlagsAMD = VkFlags -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end -const VkCuFunctionNVX_T = Cvoid +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end -struct VkCuModuleCreateInfoNVX +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + maxVertexAttribDivisor::UInt32 end -struct VkCuLaunchInfoNVX +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkImageViewHandleInfoNVX +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler + imageFootprint::VkBool32 end -struct VkImageViewAddressPropertiesNVX +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkTextureLODGatherFormatPropertiesAMD +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL sType::VkStructureType pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 + shaderIntegerFunctions2::VkBool32 end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkPerformanceConfigurationINTEL_T = Cvoid -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkExternalMemoryImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -struct VkExportMemoryAllocateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkValidationFlagsEXT +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + pUserData::Ptr{Cvoid} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures - -struct VkImageViewASTCDecodeModeEXT +struct VkQueryPoolPerformanceQueryCreateInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 -end - -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 + marker::UInt64 end -const VkConditionalRenderingFlagsEXT = VkFlags - -struct VkConditionalRenderingBeginInfoEXT +struct VkPerformanceStreamMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + marker::UInt32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -const VkSurfaceCounterFlagsEXT = VkFlags - -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkDisplayEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkSwapchainCounterCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} - -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) -end +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPresentTimesInfoGOOGLE +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + fragmentDensityMapAttachment::VkAttachmentReference end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + memoryPriority::VkBool32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkHdrMetadataEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -const VkDebugUtilsMessengerEXT_T = Cvoid +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + ycbcrImageArrays::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} - -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -struct VkPipelineCoverageModulationStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + presentMode::VkPresentModeKHR end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkSurfacePresentScalingCapabilitiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + swapchainMaintenance1::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheEXT_T = Cvoid - -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkSwapchainPresentScalingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkReleaseSwapchainImagesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkIndirectCommandsLayoutNV_T = Cvoid -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 -end - -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end - -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkAccelerationStructureNV_T = Cvoid - -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR - -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + texelBufferAlignment::VkBool32 end -struct VkGeometryTrianglesNV +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR end -struct VkGeometryAABBNV +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkGeometryNV +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR + deviceMemoryReport::VkBool32 end -struct VkAccelerationStructureInfoNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceRobustness2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV +struct VkPhysicalDeviceRobustness2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -struct VkAccelerationStructureMemoryRequirementsInfoNV +struct VkSamplerCustomBorderColorCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + customBorderColor::VkClearColorValue + format::VkFormat end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 -end - -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} -end - -const VkTransformMatrixNV = VkTransformMatrixKHR - -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat -end - -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} + maxCustomBorderColorSamplers::UInt32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkAccelerationStructureKHR_T = Cvoid -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + buffer::VkBuffer end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + image::VkImage end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + imageView::VkImageView end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR - -struct VkImportMemoryHostPointerInfoEXT +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + sampler::VkSampler end -struct VkMemoryHostPointerPropertiesEXT +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -const VkPipelineCompilerControlFlagsAMD = VkFlags +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderCorePropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkDeviceMemoryOverallocationCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + graphicsPipelineLibrary::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkCheckpointDataNV +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} - -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL -end - -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + ycbcr2plane444Formats::VkBool32 end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + fragmentDensityMapDeferred::VkBool32 end -struct VkPerformanceOverrideInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFixedRateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} + +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFaultFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures - -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures - -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceDrmPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + reportAddressBinding::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkMemoryPriorityAllocateInfoEXT +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + depthClipControl::VkBool32 end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +struct VkPipelineViewportDepthClipControlCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + negativeOneToOne::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + renderPass::VkRenderPass + subpass::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + invocationMask::VkBool32 end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags - -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + pipelineIdentifier::NTuple{16, UInt8} end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + pipelinePropertiesIdentifier::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + optimal::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 -end - -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +end -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + colorWriteEnable::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + multiDraw::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +const VkMicromapEXT_T = Cvoid -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +const VkMicromapEXT = Ptr{VkMicromapEXT_T} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) -end +const VkMicromapCreateFlagsEXT = VkFlags -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress +end -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures - -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) + disallowMerging::VkBool32 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -const VkRemoteAddressNV = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -struct VkMemoryGetRemoteAddressInfoNV +struct VkDirectDriverLoadingInfoLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} - -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV_T = Cvoid + +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15242,6 +19749,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15376,12 +19965,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15402,14 +19989,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15462,6 +20051,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15732,6 +20369,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15870,6 +20573,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15896,10 +20605,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16080,6 +20801,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16622,6 +21349,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16648,7 +21387,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16682,6 +21421,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16696,7 +21441,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16706,6 +21451,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16742,12 +21505,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16760,12 +21541,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16784,6 +21559,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16814,6 +21595,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16826,6 +21619,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16846,12 +21645,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16870,12 +21687,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16884,10 +21725,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16906,6 +21851,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/aarch64-linux-musl.jl b/lib/aarch64-linux-musl.jl index aa738a8..56081ed 100644 --- a/lib/aarch64-linux-musl.jl +++ b/lib/aarch64-linux-musl.jl @@ -158,6 +158,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -165,6 +171,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -414,6 +421,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -425,6 +452,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -441,6 +474,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -578,6 +614,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -589,7 +631,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -655,6 +696,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -677,12 +727,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -690,21 +774,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -729,24 +823,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -852,6 +1010,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -908,7 +1067,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -918,6 +1081,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -937,9 +1105,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -987,6 +1159,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -997,17 +1171,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1280,6 +1451,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1364,12 +1536,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1529,6 +1708,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1629,8 +1839,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1665,8 +1875,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1803,10 +2016,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1817,7 +2033,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1839,6 +2054,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1873,15 +2091,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1914,6 +2143,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1951,14 +2182,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2012,6 +2245,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2024,6 +2260,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2035,6 +2272,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2053,12 +2291,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2071,6 +2316,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2119,7 +2365,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2157,15 +2411,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2192,6 +2449,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2200,6 +2459,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2208,6 +2468,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2215,6 +2480,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2223,8 +2491,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,8 +2504,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2253,6 +2525,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2280,6 +2553,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6046,6 +6323,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6885,6 +7165,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7977,6 +8258,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8342,6403 +8624,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} + +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +const VkDeferredOperationKHR_T = Cvoid + +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end + +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end + +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end + +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end + +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} +end + +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +struct VkPhysicalDevicePresentIdFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentId::VkBool32 +end + +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 + +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 + +const VkAccessFlags2KHR = VkAccessFlags2 + +const VkAccessFlagBits2KHR = VkAccessFlagBits2 + +const VkSubmitFlagBitsKHR = VkSubmitFlagBits + +const VkSubmitFlagsKHR = VkSubmitFlags + +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 +end + +struct VkCheckpointData2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 +end + +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 +end + +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end + +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 + +const VkCopyImageInfo2KHR = VkCopyImageInfo2 + +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 + +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 + +const VkBlitImageInfo2KHR = VkBlitImageInfo2 + +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo - -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT_T = Cvoid -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkDebugReportFlagsEXT = VkFlags -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} +end -struct VkImportSemaphoreFdInfoKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkSemaphoreGetFdInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end + +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -struct VkPresentRegionsKHR +struct VkPipelineRasterizationStateStreamCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkCuModuleNVX_T = Cvoid -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkCuFunctionNVX_T = Cvoid -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -const VkSubpassDependency2KHR = VkSubpassDependency2 +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} + +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkFenceImportFlagsKHR = VkFenceImportFlags - -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFenceGetFdInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + supportsTextureGatherLODBiasAMD::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +end -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryHandleTypeFlagsNV = VkFlags + +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceCounterDescriptionKHR +struct VkValidationFlagsEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -struct VkQueryPoolPerformanceCreateInfoKHR +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures + +struct VkImageViewASTCDecodeModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} -end - -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} + decodeMode::VkFormat end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkConditionalRenderingFlagsEXT = VkFlags -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkSurfaceFormat2KHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkDisplayPlaneProperties2KHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + powerState::VkDisplayPowerStateEXT end -struct VkDisplayModeProperties2KHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + deviceEvent::VkDeviceEventTypeEXT end -struct VkDisplayPlaneInfo2KHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + displayEvent::VkDisplayEventTypeEXT end -struct VkDisplayPlaneCapabilities2KHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkChromaLocationKHR = VkChromaLocation +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo - -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 -end - -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties - -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits - -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures - -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures - -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkRenderPassSampleLocationsBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -const VkDeferredOperationKHR_T = Cvoid +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkPipelineInfoKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkPipelineExecutablePropertiesKHR +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPipelineExecutableInfoKHR +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} + +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutableStatisticKHR +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkShaderModuleValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -struct VkPipelineLibraryCreateInfoKHR +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkPresentIdKHR +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -const VkAccessFlags2KHR = VkAccessFlags2 +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -const VkSubmitFlagsKHR = VkSubmitFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkDependencyInfoKHR = VkDependencyInfo +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkSubmitInfo2KHR = VkSubmitInfo2 +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +const VkAccelerationStructureNV_T = Cvoid -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) -end +const VkGeometryInstanceFlagsKHR = VkFlags -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +const VkTransformMatrixNV = VkTransformMatrixKHR -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) -end +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT_T = Cvoid +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} - -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + representativeFragmentTestEnable::VkBool32 end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + imageViewType::VkImageViewType end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkMemoryHostPointerPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + memoryTypeBits::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + minImportedHostPointerAlignment::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPipelineCompilerControlFlagsAMD = VkFlags -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end -const VkCuFunctionNVX_T = Cvoid +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end -struct VkCuModuleCreateInfoNVX +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + maxVertexAttribDivisor::UInt32 end -struct VkCuLaunchInfoNVX +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkImageViewHandleInfoNVX +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler + imageFootprint::VkBool32 end -struct VkImageViewAddressPropertiesNVX +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkTextureLODGatherFormatPropertiesAMD +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL sType::VkStructureType pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 + shaderIntegerFunctions2::VkBool32 end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkPerformanceConfigurationINTEL_T = Cvoid -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkExternalMemoryImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -struct VkExportMemoryAllocateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkValidationFlagsEXT +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + pUserData::Ptr{Cvoid} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures - -struct VkImageViewASTCDecodeModeEXT +struct VkQueryPoolPerformanceQueryCreateInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 -end - -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 + marker::UInt64 end -const VkConditionalRenderingFlagsEXT = VkFlags - -struct VkConditionalRenderingBeginInfoEXT +struct VkPerformanceStreamMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + marker::UInt32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -const VkSurfaceCounterFlagsEXT = VkFlags - -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkDisplayEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkSwapchainCounterCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} - -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) -end +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPresentTimesInfoGOOGLE +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + fragmentDensityMapAttachment::VkAttachmentReference end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + memoryPriority::VkBool32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkHdrMetadataEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -const VkDebugUtilsMessengerEXT_T = Cvoid +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + ycbcrImageArrays::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} - -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -struct VkPipelineCoverageModulationStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + presentMode::VkPresentModeKHR end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkSurfacePresentScalingCapabilitiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + swapchainMaintenance1::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheEXT_T = Cvoid - -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkSwapchainPresentScalingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkReleaseSwapchainImagesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkIndirectCommandsLayoutNV_T = Cvoid -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 -end - -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end - -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkAccelerationStructureNV_T = Cvoid - -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR - -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + texelBufferAlignment::VkBool32 end -struct VkGeometryTrianglesNV +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR end -struct VkGeometryAABBNV +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkGeometryNV +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR + deviceMemoryReport::VkBool32 end -struct VkAccelerationStructureInfoNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceRobustness2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV +struct VkPhysicalDeviceRobustness2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -struct VkAccelerationStructureMemoryRequirementsInfoNV +struct VkSamplerCustomBorderColorCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + customBorderColor::VkClearColorValue + format::VkFormat end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 -end - -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} -end - -const VkTransformMatrixNV = VkTransformMatrixKHR - -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat -end - -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} + maxCustomBorderColorSamplers::UInt32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkAccelerationStructureKHR_T = Cvoid -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + buffer::VkBuffer end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + image::VkImage end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + imageView::VkImageView end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR - -struct VkImportMemoryHostPointerInfoEXT +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + sampler::VkSampler end -struct VkMemoryHostPointerPropertiesEXT +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -const VkPipelineCompilerControlFlagsAMD = VkFlags +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderCorePropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkDeviceMemoryOverallocationCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + graphicsPipelineLibrary::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkCheckpointDataNV +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} - -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL -end - -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + ycbcr2plane444Formats::VkBool32 end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + fragmentDensityMapDeferred::VkBool32 end -struct VkPerformanceOverrideInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFixedRateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} + +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFaultFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures - -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures - -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceDrmPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + reportAddressBinding::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkMemoryPriorityAllocateInfoEXT +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + depthClipControl::VkBool32 end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +struct VkPipelineViewportDepthClipControlCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + negativeOneToOne::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + renderPass::VkRenderPass + subpass::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + invocationMask::VkBool32 end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags - -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + pipelineIdentifier::NTuple{16, UInt8} end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + pipelinePropertiesIdentifier::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + optimal::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 -end - -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +end -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + colorWriteEnable::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + multiDraw::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +const VkMicromapEXT_T = Cvoid -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +const VkMicromapEXT = Ptr{VkMicromapEXT_T} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) -end +const VkMicromapCreateFlagsEXT = VkFlags -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress +end -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures - -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) + disallowMerging::VkBool32 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -const VkRemoteAddressNV = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -struct VkMemoryGetRemoteAddressInfoNV +struct VkDirectDriverLoadingInfoLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} - -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV_T = Cvoid + +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15242,6 +19749,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15376,12 +19965,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15402,14 +19989,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15462,6 +20051,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15732,6 +20369,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15870,6 +20573,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15896,10 +20605,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16080,6 +20801,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16622,6 +21349,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16648,7 +21387,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16682,6 +21421,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16696,7 +21441,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16706,6 +21451,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16742,12 +21505,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16760,12 +21541,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16784,6 +21559,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16814,6 +21595,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16826,6 +21619,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16846,12 +21645,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16870,12 +21687,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16884,10 +21725,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16906,6 +21851,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/armv7l-linux-gnueabihf.jl b/lib/armv7l-linux-gnueabihf.jl index ca629a1..a9af2a7 100644 --- a/lib/armv7l-linux-gnueabihf.jl +++ b/lib/armv7l-linux-gnueabihf.jl @@ -118,6 +118,12 @@ const VkCommandPool = UInt64 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -125,6 +131,7 @@ const VkCommandPool = UInt64 VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -374,6 +381,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -385,6 +412,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -401,6 +434,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -538,6 +574,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -549,7 +591,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -615,6 +656,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -637,12 +687,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -650,21 +734,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -689,24 +783,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -812,6 +970,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -868,7 +1027,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -878,6 +1041,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -897,9 +1065,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -947,6 +1119,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -957,17 +1131,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1240,6 +1411,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1324,12 +1496,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1489,6 +1668,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1589,8 +1799,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1625,8 +1835,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1763,10 +1976,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1777,7 +1993,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1799,6 +2014,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1833,15 +2051,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1874,6 +2103,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1911,14 +2142,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1972,6 +2205,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1984,6 +2220,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1995,6 +2232,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2013,12 +2251,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2031,6 +2276,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2079,7 +2325,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2117,15 +2371,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2152,6 +2409,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2160,6 +2419,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2168,6 +2428,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2175,6 +2440,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2183,8 +2451,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2195,8 +2464,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2213,6 +2485,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2240,6 +2513,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6002,6 +6279,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6839,6 +7119,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7927,6 +8208,7 @@ const VkSwapchainKHR = UInt64 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8288,6383 +8570,10600 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR = UInt64 -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionParametersKHR = UInt64 -const VkRenderingInfoKHR = VkRenderingInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoChromaSubsamplingFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo - -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo - -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) +end -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +const VkVideoDecodeCapabilityFlagsKHR = VkFlags -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +const VkVideoDecodeUsageFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) -end +const VkVideoDecodeFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR +end + +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR +end + +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) end const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end -struct VkImportMemoryFdInfoKHR +struct VkVideoDecodeH265CapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint + maxLevelIdc::StdVideoH265LevelIdc end -struct VkMemoryFdPropertiesKHR +struct VkVideoDecodeH265SessionParametersAddInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} end -struct VkMemoryGetFdInfoKHR +struct VkVideoDecodeH265SessionParametersCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +const VkDriverIdKHR = VkDriverId -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkConformanceVersionKHR = VkConformanceVersion -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +const VkResolveModeFlagsKHR = VkResolveModeFlags -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end -struct VkImportSemaphoreFdInfoKHR +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkSemaphoreGetFdInfoKHR +struct VkPipelineFragmentShadingRateStateCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures - -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionsKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} -end +const VkDeferredOperationKHR = UInt64 -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end -const VkAttachmentReference2KHR = VkAttachmentReference2 +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end -const VkSubpassDescription2KHR = VkSubpassDescription2 +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end -const VkSubpassDependency2KHR = VkSubpassDependency2 +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -struct VkSharedPresentSurfaceCapabilitiesKHR +struct VkPhysicalDevicePresentIdFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags + presentId::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} - -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +const VkAccessFlags2KHR = VkAccessFlags2 -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkSubmitFlagsKHR = VkSubmitFlags -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +const VkMemoryBarrier2KHR = VkMemoryBarrier2 -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDependencyInfoKHR = VkDependencyInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkSubmitInfo2KHR = VkSubmitInfo2 -const VkFenceImportFlagsKHR = VkFenceImportFlags +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features -struct VkImportFenceFdInfoKHR +struct VkQueueFamilyCheckpointProperties2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkFenceGetFdInfoKHR +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkPerformanceCounterDescriptionKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkQueryPoolPerformanceCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + shaderSubgroupUniformControlFlow::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkResolveImageInfo2KHR = VkResolveImageInfo2 -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkBufferCopy2KHR = VkBufferCopy2 -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkImageCopy2KHR = VkImageCopy2 -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) -end +const VkImageBlit2KHR = VkImageBlit2 -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) -end +const VkBufferImageCopy2KHR = VkBufferImageCopy2 -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +const VkImageResolve2KHR = VkImageResolve2 -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceFormat2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) end -struct VkDisplayPlaneProperties2KHR +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 + +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -struct VkDisplayModeProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -struct VkDisplayPlaneInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} + +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -struct VkDisplayPlaneCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} + +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +const VkDebugReportCallbackEXT = UInt64 + +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo +const VkDebugReportFlagsEXT = VkFlags -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} +end -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkMemoryRequirements2KHR = VkMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +struct VkDebugMarkerObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +struct VkDebugMarkerMarkerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} +end -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -const VkChromaLocationKHR = VkChromaLocation +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationStateStreamCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} + +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -struct VkPhysicalDeviceShaderClockFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 -end +const VkCuModuleNVX = UInt64 -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +const VkCuFunctionNVX = UInt64 + +struct VkCuModuleCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + dataSize::Csize_t + pData::Ptr{Cvoid} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkCuFunctionCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkCuLaunchInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -const VkResolveModeFlagsKHR = VkResolveModeFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkSemaphoreTypeKHR = VkSemaphoreType +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize +end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} + +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFragmentShadingRateAttachmentInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D + supportsTextureGatherLODBiasAMD::VkBool32 end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -struct VkPhysicalDeviceFragmentShadingRateKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +struct VkPhysicalDeviceCornerSampledImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + cornerSampledImage::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -struct VkSurfaceProtectedCapabilitiesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - supportsProtected::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - presentWait::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures - -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures - -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo - -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo - -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo - -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo - -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 +end -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineRobustnessCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkDeferredOperationKHR = UInt64 +const VkConditionalRenderingFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 +end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPipelineInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutablePropertiesKHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -struct VkPipelineExecutableInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +struct VkDisplayPowerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + powerState::VkDisplayPowerStateEXT +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +struct VkDeviceEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceEvent::VkDeviceEventTypeEXT end -struct VkPipelineExecutableStatisticKHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + displayEvent::VkDisplayEventTypeEXT end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkPipelineLibraryCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 +end + +struct VkPresentTimesInfoGOOGLE sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 - -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkAccessFlags2KHR = VkAccessFlags2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagsKHR = VkSubmitFlags +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkDependencyInfoKHR = VkDependencyInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkSubmitInfo2KHR = VkSubmitInfo2 +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -struct VkQueueFamilyCheckpointProperties2NV +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 + maxDiscardRectangles::UInt32 end -struct VkCheckpointData2NV +struct VkPipelineDiscardRectangleStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkXYColorEXT + x::Cfloat + y::Cfloat end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkDebugUtilsMessengerEXT = UInt64 -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) -end +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsLabelEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkImageCopy2KHR = VkImageCopy2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkImageBlit2KHR = VkImageBlit2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkBufferImageCopy2KHR = VkBufferImageCopy2 +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkImageResolve2KHR = VkImageResolve2 +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties - -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements - -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} - -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkDebugReportCallbackEXT = UInt64 - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkDebugReportFlagsEXT = VkFlags +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeEXT = VkSamplerReductionMode -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) -end +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo + +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkPipelineRasterizationStateRasterizationOrderAMD +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -struct VkDebugMarkerObjectNameInfoEXT +struct VkPipelineSampleLocationsStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkDebugMarkerObjectTagInfoEXT +struct VkPhysicalDeviceSampleLocationsPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 end -struct VkDebugMarkerMarkerInfoEXT +struct VkMultisamplePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} + maxSampleLocationGridSize::VkExtent2D end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +end + +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkImageDrmFormatModifierPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + drmFormatModifier::UInt64 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +end + +struct VkDrmFormatModifierPropertiesList2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +const VkValidationCacheEXT = UInt64 -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +const VkValidationCacheCreateFlagsEXT = VkFlags -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 end -const VkCuModuleNVX = UInt64 +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end -const VkCuFunctionNVX = UInt64 +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end -struct VkCuModuleCreateInfoNVX +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkCuLaunchInfoNVX +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkAccelerationStructureNV = UInt64 -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler -end +const VkGeometryTypeNV = VkGeometryTypeKHR -struct VkImageViewAddressPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) -end +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} - -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsKHR = VkFlags -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -struct VkTextureLODGatherFormatPropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 -end +const VkGeometryInstanceFlagsKHR = VkFlags -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +struct VkRayTracingShaderGroupCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 -end - -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -struct VkExternalMemoryImageCreateInfoNV +struct VkGeometryNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkExportMemoryAllocateInfoNV +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -struct VkValidationFlagsEXT +struct VkBindAccelerationStructureMemoryInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} +end -struct VkImageViewASTCDecodeModeEXT +struct VkAccelerationStructureMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +struct VkPhysicalDeviceRayTracingPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -const VkConditionalRenderingFlagsEXT = VkFlags +const VkTransformMatrixNV = VkTransformMatrixKHR -struct VkConditionalRenderingBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 +const VkAabbPositionsNV = VkAabbPositionsKHR + +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -const VkSurfaceCounterFlagsEXT = VkFlags +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -struct VkDisplayPowerInfoEXT +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT + representativeFragmentTest::VkBool32 end -struct VkDeviceEventInfoEXT +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT + representativeFragmentTestEnable::VkBool32 end -struct VkDisplayEventInfoEXT +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + imageViewType::VkImageViewType end -struct VkSwapchainCounterCreateInfoEXT +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkImportMemoryHostPointerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +const VkPipelineCompilerControlFlagsAMD = VkFlags + +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -struct VkPresentTimesInfoGOOGLE +struct VkCalibratedTimestampInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + timeDomain::VkTimeDomainEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCorePropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags - -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkDeviceMemoryOverallocationCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + maxVertexAttribDivisor::UInt32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} - -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +struct VkPhysicalDeviceMeshShaderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + taskShader::VkBool32 + meshShader::VkBool32 end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT +struct VkPhysicalDeviceMeshShaderPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -struct VkXYColorEXT - x::Cfloat - y::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -const VkDebugUtilsMessengerEXT = UInt64 - -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags - -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + imageFootprint::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkPhysicalDeviceExclusiveScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + exclusiveScissor::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -struct VkDebugUtilsMessengerCreateInfoEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +struct VkQueueFamilyCheckpointPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -struct VkDebugUtilsObjectTagInfoEXT +struct VkCheckpointDataNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +const VkPerformanceConfigurationINTEL = UInt64 -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkInitializePerformanceApiInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + pUserData::Ptr{Cvoid} end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPerformanceMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt64 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceOverrideInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +struct VkPerformanceConfigurationAcquireInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceConfigurationTypeINTEL end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT +struct VkPhysicalDevicePCIBusInfoPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 + localDimmingSupport::VkBool32 end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT +struct VkSwapchainDisplayNativeHdrCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT + localDimmingEnable::VkBool32 end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 + fragmentDensityMapAttachment::VkAttachmentReference end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures + +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures + +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties + +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkDrmFormatModifierPropertiesListEXT +const VkShaderCorePropertiesFlagsAMD = VkFlags + +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} + deviceCoherentMemory::VkBool32 end -struct VkImageDrmFormatModifierListCreateInfoEXT +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 -end - -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 + memoryPriority::VkBool32 end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkMemoryPriorityAllocateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -const VkValidationCacheEXT = UInt64 - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 + priority::Cfloat end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits - -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags - -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo - -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +const VkToolPurposeFlagsEXT = VkToolPurposeFlags -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} -end +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo -struct VkPipelineViewportShadingRateImageStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} - -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrixSupportedStages::VkShaderStageFlags end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 end -const VkAccelerationStructureNV = UInt64 +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcrImageArrays::VkBool32 end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkGeometryTrianglesNV +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + provokingVertexMode::VkProvokingVertexModeEXT end -struct VkGeometryAABBNV +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + flags::VkHeadlessSurfaceCreateFlagsEXT end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkGeometryNV - sType::VkStructureType - pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkAccelerationStructureInfoNV +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -struct VkAccelerationStructureCreateInfoNV +struct VkPhysicalDeviceLineRasterizationPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV + lineSubPixelPrecisionBits::UInt32 end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPipelineRasterizationLineStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -struct VkWriteDescriptorSetAccelerationStructureNV +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -struct VkAccelerationStructureMemoryRequirementsInfoNV +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures + +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + indexTypeUint8::VkBool32 end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 + extendedDynamicState::VkBool32 end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -const VkTransformMatrixNV = VkTransformMatrixKHR +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -const VkAabbPositionsNV = VkAabbPositionsKHR +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + +const VkIndirectCommandsLayoutNV = UInt64 + +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags + +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} -struct VkImportMemoryHostPointerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -struct VkMemoryHostPointerPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkPipelineCompilerControlFlagsAMD = VkFlags - -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -struct VkPhysicalDeviceShaderCorePropertiesAMD +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 -end - -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 + inheritedViewportScissor2D::VkBool32 end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 + texelBufferAlignment::VkBool32 end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 -end +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + transform::VkSurfaceTransformFlagBitsKHR end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits - -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags - -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkDeviceMemoryReportFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + deviceMemoryReport::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +struct VkPhysicalDevicePresentBarrierFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageFootprint::VkBool32 + presentBarrier::VkBool32 end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV +struct VkSurfaceCapabilitiesPresentBarrierNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} + presentBarrierSupported::VkBool32 end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV +struct VkSwapchainPresentBarrierCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 + presentBarrierEnable::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags + +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures + +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo + +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -struct VkQueueFamilyCheckpointPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -struct VkCheckpointDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +struct VkDeviceDiagnosticsConfigCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + flags::VkDeviceDiagnosticsConfigFlagsNV end -const VkPerformanceConfigurationINTEL = UInt64 +const VkAccelerationStructureKHR = UInt64 -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -struct VkPerformanceValueDataINTEL +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkDescriptorDataEXT data::NTuple{8, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} - -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL +struct VkDescriptorGetInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkInitializePerformanceApiInfoINTEL +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} + buffer::VkBuffer end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + image::VkImage end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + imageView::VkImageView end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + sampler::VkSampler end -struct VkPerformanceOverrideInfoINTEL +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + graphicsPipelineLibrary::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 +end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV +end + +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat end -struct VkMemoryPriorityAllocateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - priority::Cfloat +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) +end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} -end - -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcr2plane444Formats::VkBool32 end -struct VkCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV + fragmentDensityMapDeferred::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +const VkImageCompressionFlagsEXT = VkFlags + +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +const VkImageCompressionFixedRateFlagsEXT = VkFlags + +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} +end -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +struct VkSubresourceLayout2EXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + subresourceLayout::VkSubresourceLayout end -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkImageSubresource2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + imageSubresource::VkImageSubresource end -struct VkFramebufferMixedSamplesCombinationNV +struct VkImageCompressionPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + attachmentFeedbackLoopLayout::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkPhysicalDevice4444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end - -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 + +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkDeviceFaultCountsEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize +end -struct VkHeadlessSurfaceCreateInfoEXT +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 +end + +struct VkDeviceFaultInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} - -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures - -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} - -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) -end +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexInputDynamicState::VkBool32 end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkVertexInputAttributeDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +const VkDeviceAddressBindingFlagsEXT = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + reportAddressBinding::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkDeviceAddressBindingCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDepthClipControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipControl::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 +end -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkSubpassShadingPipelineCreateInfoHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + renderPass::VkRenderPass + subpass::UInt32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} + +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + invocationMask::VkBool32 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + externalMemoryRDMA::VkBool32 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} + +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPipelinePropertiesIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineIdentifier::NTuple{16, UInt8} end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelinePropertiesIdentifier::VkBool32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampled::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkSubpassResolvePerformanceQueryEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + optimal::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkMultisampledRenderToSingleSampledInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -const VkIndirectCommandsLayoutNV = UInt64 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkIndirectStateFlagsNV = VkFlags +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkGraphicsShaderGroupCreateInfoNV +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + colorWriteEnable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize -end +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -struct VkIndirectCommandsLayoutTokenNV +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR + +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} + minLod::VkBool32 end -struct VkIndirectCommandsLayoutCreateInfoNV +struct VkImageViewMinLodCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} + minLod::Cfloat end -struct VkGeneratedCommandsInfoNV +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize + multiDraw::VkBool32 end -struct VkGeneratedCommandsMemoryRequirementsInfoNV +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +const VkMicromapEXT = UInt64 + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkCommandBufferInheritanceViewportScissorInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} +const VkBuildMicromapFlagsEXT = VkFlags + +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} +end -struct VkRenderPassTransformBeginInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] +end + +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkMicromapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) -end - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkCopyMicromapToMemoryInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -const VkPrivateDataSlotEXT = VkPrivateDataSlot +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 +end -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkDeviceDiagnosticsConfigCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) +end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkAccelerationStructureMotionInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +struct VkSamplerBorderColorComponentMappingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + components::VkComponentMapping + srgb::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pageableDeviceLocalMemory::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end -end +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetHostMapping::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDescriptorSetBindingReferenceVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkDescriptorSetLayoutHostMappingInfoVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 + nonSeamlessCubeMap::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkCopyCommandTransformInfoQCOM +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 + indirectCopy::VkBool32 end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 + supportedQueues::VkQueueFlags end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 -end +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} -end +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 + memoryDecompression::VkBool32 end -struct VkVertexInputBindingDescription2EXT +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -struct VkPhysicalDeviceDrmPropertiesEXT +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 + linearColorAttachment::VkBool32 end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipControl::VkBool32 + imageCompressionControlSwapchain::VkBool32 end -struct VkPipelineViewportDepthClipControlCreateInfoEXT +struct VkImageViewSampleWeightCreateInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT +struct VkPhysicalDeviceImageProcessingFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkSubpassShadingPipelineCreateInfoHUAWEI +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp +end + +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - invocationMask::VkBool32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -const VkRemoteAddressNV = Ptr{Cvoid} +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 +end -struct VkMemoryGetRemoteAddressInfoNV +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + disallowMerging::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 +end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingInfoLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingListLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} +end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} + +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionNV = UInt64 + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPipelineColorWriteCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} +const VkOpticalFlowUsageFlagsNV = VkFlags -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +const VkOpticalFlowExecuteFlagsNV = VkFlags -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkPhysicalDeviceOpticalFlowFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + opticalFlow::VkBool32 +end -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowImageFormatInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + usage::VkOpticalFlowUsageFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + format::VkFormat end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 +struct VkOpticalFlowSessionCreatePrivateDataInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 +struct VkOpticalFlowExecuteInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR = UInt64 - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15168,6 +19667,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15302,12 +19883,10 @@ const VK_NULL_HANDLE = Culonglong(0) const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15328,14 +19907,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15388,6 +19969,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15658,6 +20287,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15796,6 +20491,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15822,10 +20523,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16006,6 +20719,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16548,6 +21267,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16574,7 +21305,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16608,6 +21339,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16622,7 +21359,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16632,6 +21369,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16668,12 +21423,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16686,12 +21459,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16710,6 +21477,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16740,6 +21513,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16752,6 +21537,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16772,12 +21563,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16796,12 +21605,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16810,10 +21643,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16832,6 +21769,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/armv7l-linux-musleabihf.jl b/lib/armv7l-linux-musleabihf.jl index ca629a1..a9af2a7 100644 --- a/lib/armv7l-linux-musleabihf.jl +++ b/lib/armv7l-linux-musleabihf.jl @@ -118,6 +118,12 @@ const VkCommandPool = UInt64 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -125,6 +131,7 @@ const VkCommandPool = UInt64 VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -374,6 +381,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -385,6 +412,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -401,6 +434,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -538,6 +574,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -549,7 +591,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -615,6 +656,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -637,12 +687,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -650,21 +734,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -689,24 +783,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -812,6 +970,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -868,7 +1027,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -878,6 +1041,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -897,9 +1065,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -947,6 +1119,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -957,17 +1131,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1240,6 +1411,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1324,12 +1496,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1489,6 +1668,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1589,8 +1799,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1625,8 +1835,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1763,10 +1976,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1777,7 +1993,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1799,6 +2014,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1833,15 +2051,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1874,6 +2103,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1911,14 +2142,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1972,6 +2205,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1984,6 +2220,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1995,6 +2232,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2013,12 +2251,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2031,6 +2276,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2079,7 +2325,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2117,15 +2371,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2152,6 +2409,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2160,6 +2419,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2168,6 +2428,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2175,6 +2440,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2183,8 +2451,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2195,8 +2464,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2213,6 +2485,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2240,6 +2513,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6002,6 +6279,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6839,6 +7119,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7927,6 +8208,7 @@ const VkSwapchainKHR = UInt64 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8288,6383 +8570,10600 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR = UInt64 -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionParametersKHR = UInt64 -const VkRenderingInfoKHR = VkRenderingInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoChromaSubsamplingFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo - -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo - -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) +end -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +const VkVideoDecodeCapabilityFlagsKHR = VkFlags -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +const VkVideoDecodeUsageFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) -end +const VkVideoDecodeFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR +end + +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR +end + +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) end const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end -struct VkImportMemoryFdInfoKHR +struct VkVideoDecodeH265CapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint + maxLevelIdc::StdVideoH265LevelIdc end -struct VkMemoryFdPropertiesKHR +struct VkVideoDecodeH265SessionParametersAddInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} end -struct VkMemoryGetFdInfoKHR +struct VkVideoDecodeH265SessionParametersCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +const VkDriverIdKHR = VkDriverId -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkConformanceVersionKHR = VkConformanceVersion -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +const VkResolveModeFlagsKHR = VkResolveModeFlags -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end -struct VkImportSemaphoreFdInfoKHR +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkSemaphoreGetFdInfoKHR +struct VkPipelineFragmentShadingRateStateCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures - -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionsKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} -end +const VkDeferredOperationKHR = UInt64 -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end -const VkAttachmentReference2KHR = VkAttachmentReference2 +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end -const VkSubpassDescription2KHR = VkSubpassDescription2 +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end -const VkSubpassDependency2KHR = VkSubpassDependency2 +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -struct VkSharedPresentSurfaceCapabilitiesKHR +struct VkPhysicalDevicePresentIdFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags + presentId::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} - -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +const VkAccessFlags2KHR = VkAccessFlags2 -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkSubmitFlagsKHR = VkSubmitFlags -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +const VkMemoryBarrier2KHR = VkMemoryBarrier2 -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDependencyInfoKHR = VkDependencyInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkSubmitInfo2KHR = VkSubmitInfo2 -const VkFenceImportFlagsKHR = VkFenceImportFlags +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features -struct VkImportFenceFdInfoKHR +struct VkQueueFamilyCheckpointProperties2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkFenceGetFdInfoKHR +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkPerformanceCounterDescriptionKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkQueryPoolPerformanceCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + shaderSubgroupUniformControlFlow::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkResolveImageInfo2KHR = VkResolveImageInfo2 -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkBufferCopy2KHR = VkBufferCopy2 -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkImageCopy2KHR = VkImageCopy2 -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) -end +const VkImageBlit2KHR = VkImageBlit2 -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) -end +const VkBufferImageCopy2KHR = VkBufferImageCopy2 -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +const VkImageResolve2KHR = VkImageResolve2 -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceFormat2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) end -struct VkDisplayPlaneProperties2KHR +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 + +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -struct VkDisplayModeProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -struct VkDisplayPlaneInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} + +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -struct VkDisplayPlaneCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} + +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +const VkDebugReportCallbackEXT = UInt64 + +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo +const VkDebugReportFlagsEXT = VkFlags -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} +end -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkMemoryRequirements2KHR = VkMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +struct VkDebugMarkerObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +struct VkDebugMarkerMarkerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} +end -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -const VkChromaLocationKHR = VkChromaLocation +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationStateStreamCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} + +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -struct VkPhysicalDeviceShaderClockFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 -end +const VkCuModuleNVX = UInt64 -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +const VkCuFunctionNVX = UInt64 + +struct VkCuModuleCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + dataSize::Csize_t + pData::Ptr{Cvoid} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkCuFunctionCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkCuLaunchInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -const VkResolveModeFlagsKHR = VkResolveModeFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkSemaphoreTypeKHR = VkSemaphoreType +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize +end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} + +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFragmentShadingRateAttachmentInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D + supportsTextureGatherLODBiasAMD::VkBool32 end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -struct VkPhysicalDeviceFragmentShadingRateKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +struct VkPhysicalDeviceCornerSampledImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + cornerSampledImage::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -struct VkSurfaceProtectedCapabilitiesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - supportsProtected::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - presentWait::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures - -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures - -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo - -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo - -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo - -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo - -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 +end -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineRobustnessCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkDeferredOperationKHR = UInt64 +const VkConditionalRenderingFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 +end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPipelineInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutablePropertiesKHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -struct VkPipelineExecutableInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +struct VkDisplayPowerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + powerState::VkDisplayPowerStateEXT +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +struct VkDeviceEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceEvent::VkDeviceEventTypeEXT end -struct VkPipelineExecutableStatisticKHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + displayEvent::VkDisplayEventTypeEXT end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkPipelineLibraryCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 +end + +struct VkPresentTimesInfoGOOGLE sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 - -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkAccessFlags2KHR = VkAccessFlags2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagsKHR = VkSubmitFlags +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkDependencyInfoKHR = VkDependencyInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkSubmitInfo2KHR = VkSubmitInfo2 +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -struct VkQueueFamilyCheckpointProperties2NV +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 + maxDiscardRectangles::UInt32 end -struct VkCheckpointData2NV +struct VkPipelineDiscardRectangleStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkXYColorEXT + x::Cfloat + y::Cfloat end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkDebugUtilsMessengerEXT = UInt64 -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) -end +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsLabelEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkImageCopy2KHR = VkImageCopy2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkImageBlit2KHR = VkImageBlit2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkBufferImageCopy2KHR = VkBufferImageCopy2 +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkImageResolve2KHR = VkImageResolve2 +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties - -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements - -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} - -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkDebugReportCallbackEXT = UInt64 - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkDebugReportFlagsEXT = VkFlags +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeEXT = VkSamplerReductionMode -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) -end +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo + +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkPipelineRasterizationStateRasterizationOrderAMD +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -struct VkDebugMarkerObjectNameInfoEXT +struct VkPipelineSampleLocationsStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkDebugMarkerObjectTagInfoEXT +struct VkPhysicalDeviceSampleLocationsPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 end -struct VkDebugMarkerMarkerInfoEXT +struct VkMultisamplePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} + maxSampleLocationGridSize::VkExtent2D end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +end + +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkImageDrmFormatModifierPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + drmFormatModifier::UInt64 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +end + +struct VkDrmFormatModifierPropertiesList2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +const VkValidationCacheEXT = UInt64 -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +const VkValidationCacheCreateFlagsEXT = VkFlags -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 end -const VkCuModuleNVX = UInt64 +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end -const VkCuFunctionNVX = UInt64 +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end -struct VkCuModuleCreateInfoNVX +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkCuLaunchInfoNVX +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkAccelerationStructureNV = UInt64 -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler -end +const VkGeometryTypeNV = VkGeometryTypeKHR -struct VkImageViewAddressPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) -end +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} - -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsKHR = VkFlags -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -struct VkTextureLODGatherFormatPropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 -end +const VkGeometryInstanceFlagsKHR = VkFlags -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +struct VkRayTracingShaderGroupCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 -end - -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -struct VkExternalMemoryImageCreateInfoNV +struct VkGeometryNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkExportMemoryAllocateInfoNV +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -struct VkValidationFlagsEXT +struct VkBindAccelerationStructureMemoryInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} +end -struct VkImageViewASTCDecodeModeEXT +struct VkAccelerationStructureMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +struct VkPhysicalDeviceRayTracingPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -const VkConditionalRenderingFlagsEXT = VkFlags +const VkTransformMatrixNV = VkTransformMatrixKHR -struct VkConditionalRenderingBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 +const VkAabbPositionsNV = VkAabbPositionsKHR + +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -const VkSurfaceCounterFlagsEXT = VkFlags +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -struct VkDisplayPowerInfoEXT +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT + representativeFragmentTest::VkBool32 end -struct VkDeviceEventInfoEXT +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT + representativeFragmentTestEnable::VkBool32 end -struct VkDisplayEventInfoEXT +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + imageViewType::VkImageViewType end -struct VkSwapchainCounterCreateInfoEXT +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkImportMemoryHostPointerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +const VkPipelineCompilerControlFlagsAMD = VkFlags + +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -struct VkPresentTimesInfoGOOGLE +struct VkCalibratedTimestampInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + timeDomain::VkTimeDomainEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCorePropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags - -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkDeviceMemoryOverallocationCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + maxVertexAttribDivisor::UInt32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} - -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +struct VkPhysicalDeviceMeshShaderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + taskShader::VkBool32 + meshShader::VkBool32 end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT +struct VkPhysicalDeviceMeshShaderPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -struct VkXYColorEXT - x::Cfloat - y::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -const VkDebugUtilsMessengerEXT = UInt64 - -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags - -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + imageFootprint::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkPhysicalDeviceExclusiveScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + exclusiveScissor::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -struct VkDebugUtilsMessengerCreateInfoEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +struct VkQueueFamilyCheckpointPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -struct VkDebugUtilsObjectTagInfoEXT +struct VkCheckpointDataNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +const VkPerformanceConfigurationINTEL = UInt64 -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkInitializePerformanceApiInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + pUserData::Ptr{Cvoid} end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPerformanceMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt64 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceOverrideInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +struct VkPerformanceConfigurationAcquireInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceConfigurationTypeINTEL end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT +struct VkPhysicalDevicePCIBusInfoPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 + localDimmingSupport::VkBool32 end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT +struct VkSwapchainDisplayNativeHdrCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT + localDimmingEnable::VkBool32 end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 + fragmentDensityMapAttachment::VkAttachmentReference end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures + +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures + +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties + +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkDrmFormatModifierPropertiesListEXT +const VkShaderCorePropertiesFlagsAMD = VkFlags + +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} + deviceCoherentMemory::VkBool32 end -struct VkImageDrmFormatModifierListCreateInfoEXT +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 -end - -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 + memoryPriority::VkBool32 end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkMemoryPriorityAllocateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -const VkValidationCacheEXT = UInt64 - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 + priority::Cfloat end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits - -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags - -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo - -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +const VkToolPurposeFlagsEXT = VkToolPurposeFlags -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} -end +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo -struct VkPipelineViewportShadingRateImageStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} - -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrixSupportedStages::VkShaderStageFlags end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 end -const VkAccelerationStructureNV = UInt64 +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcrImageArrays::VkBool32 end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkGeometryTrianglesNV +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + provokingVertexMode::VkProvokingVertexModeEXT end -struct VkGeometryAABBNV +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + flags::VkHeadlessSurfaceCreateFlagsEXT end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkGeometryNV - sType::VkStructureType - pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkAccelerationStructureInfoNV +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -struct VkAccelerationStructureCreateInfoNV +struct VkPhysicalDeviceLineRasterizationPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV + lineSubPixelPrecisionBits::UInt32 end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPipelineRasterizationLineStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -struct VkWriteDescriptorSetAccelerationStructureNV +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -struct VkAccelerationStructureMemoryRequirementsInfoNV +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures + +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + indexTypeUint8::VkBool32 end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 + extendedDynamicState::VkBool32 end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -const VkTransformMatrixNV = VkTransformMatrixKHR +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -const VkAabbPositionsNV = VkAabbPositionsKHR +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + +const VkIndirectCommandsLayoutNV = UInt64 + +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags + +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} -struct VkImportMemoryHostPointerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -struct VkMemoryHostPointerPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkPipelineCompilerControlFlagsAMD = VkFlags - -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -struct VkPhysicalDeviceShaderCorePropertiesAMD +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 -end - -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 + inheritedViewportScissor2D::VkBool32 end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 + texelBufferAlignment::VkBool32 end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 -end +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + transform::VkSurfaceTransformFlagBitsKHR end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits - -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags - -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkDeviceMemoryReportFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + deviceMemoryReport::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +struct VkPhysicalDevicePresentBarrierFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageFootprint::VkBool32 + presentBarrier::VkBool32 end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV +struct VkSurfaceCapabilitiesPresentBarrierNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} + presentBarrierSupported::VkBool32 end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV +struct VkSwapchainPresentBarrierCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 + presentBarrierEnable::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags + +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures + +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo + +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -struct VkQueueFamilyCheckpointPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -struct VkCheckpointDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +struct VkDeviceDiagnosticsConfigCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + flags::VkDeviceDiagnosticsConfigFlagsNV end -const VkPerformanceConfigurationINTEL = UInt64 +const VkAccelerationStructureKHR = UInt64 -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -struct VkPerformanceValueDataINTEL +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkDescriptorDataEXT data::NTuple{8, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} - -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL +struct VkDescriptorGetInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkInitializePerformanceApiInfoINTEL +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} + buffer::VkBuffer end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + image::VkImage end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + imageView::VkImageView end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + sampler::VkSampler end -struct VkPerformanceOverrideInfoINTEL +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + graphicsPipelineLibrary::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 +end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV +end + +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat end -struct VkMemoryPriorityAllocateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - priority::Cfloat +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) +end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} -end - -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcr2plane444Formats::VkBool32 end -struct VkCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV + fragmentDensityMapDeferred::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +const VkImageCompressionFlagsEXT = VkFlags + +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +const VkImageCompressionFixedRateFlagsEXT = VkFlags + +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} +end -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +struct VkSubresourceLayout2EXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + subresourceLayout::VkSubresourceLayout end -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkImageSubresource2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + imageSubresource::VkImageSubresource end -struct VkFramebufferMixedSamplesCombinationNV +struct VkImageCompressionPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + attachmentFeedbackLoopLayout::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkPhysicalDevice4444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end - -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 + +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkDeviceFaultCountsEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize +end -struct VkHeadlessSurfaceCreateInfoEXT +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 +end + +struct VkDeviceFaultInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} - -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures - -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} - -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) -end +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexInputDynamicState::VkBool32 end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkVertexInputAttributeDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +const VkDeviceAddressBindingFlagsEXT = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + reportAddressBinding::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkDeviceAddressBindingCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDepthClipControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipControl::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 +end -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkSubpassShadingPipelineCreateInfoHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + renderPass::VkRenderPass + subpass::UInt32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} + +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + invocationMask::VkBool32 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + externalMemoryRDMA::VkBool32 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} + +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPipelinePropertiesIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineIdentifier::NTuple{16, UInt8} end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelinePropertiesIdentifier::VkBool32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampled::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkSubpassResolvePerformanceQueryEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + optimal::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkMultisampledRenderToSingleSampledInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -const VkIndirectCommandsLayoutNV = UInt64 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkIndirectStateFlagsNV = VkFlags +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkGraphicsShaderGroupCreateInfoNV +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + colorWriteEnable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize -end +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -struct VkIndirectCommandsLayoutTokenNV +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR + +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} + minLod::VkBool32 end -struct VkIndirectCommandsLayoutCreateInfoNV +struct VkImageViewMinLodCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} + minLod::Cfloat end -struct VkGeneratedCommandsInfoNV +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize + multiDraw::VkBool32 end -struct VkGeneratedCommandsMemoryRequirementsInfoNV +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +const VkMicromapEXT = UInt64 + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkCommandBufferInheritanceViewportScissorInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} +const VkBuildMicromapFlagsEXT = VkFlags + +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} +end -struct VkRenderPassTransformBeginInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] +end + +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkMicromapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) -end - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkCopyMicromapToMemoryInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -const VkPrivateDataSlotEXT = VkPrivateDataSlot +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 +end -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkDeviceDiagnosticsConfigCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) +end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkAccelerationStructureMotionInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +struct VkSamplerBorderColorComponentMappingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + components::VkComponentMapping + srgb::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pageableDeviceLocalMemory::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end -end +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetHostMapping::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDescriptorSetBindingReferenceVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkDescriptorSetLayoutHostMappingInfoVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 + nonSeamlessCubeMap::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkCopyCommandTransformInfoQCOM +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 + indirectCopy::VkBool32 end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 + supportedQueues::VkQueueFlags end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 -end +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} -end +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 + memoryDecompression::VkBool32 end -struct VkVertexInputBindingDescription2EXT +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -struct VkPhysicalDeviceDrmPropertiesEXT +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 + linearColorAttachment::VkBool32 end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipControl::VkBool32 + imageCompressionControlSwapchain::VkBool32 end -struct VkPipelineViewportDepthClipControlCreateInfoEXT +struct VkImageViewSampleWeightCreateInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT +struct VkPhysicalDeviceImageProcessingFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkSubpassShadingPipelineCreateInfoHUAWEI +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp +end + +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - invocationMask::VkBool32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -const VkRemoteAddressNV = Ptr{Cvoid} +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 +end -struct VkMemoryGetRemoteAddressInfoNV +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + disallowMerging::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 +end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingInfoLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingListLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} +end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} + +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionNV = UInt64 + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPipelineColorWriteCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} +const VkOpticalFlowUsageFlagsNV = VkFlags -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +const VkOpticalFlowExecuteFlagsNV = VkFlags -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkPhysicalDeviceOpticalFlowFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + opticalFlow::VkBool32 +end -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowImageFormatInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + usage::VkOpticalFlowUsageFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + format::VkFormat end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 +struct VkOpticalFlowSessionCreatePrivateDataInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 +struct VkOpticalFlowExecuteInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR = UInt64 - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15168,6 +19667,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15302,12 +19883,10 @@ const VK_NULL_HANDLE = Culonglong(0) const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15328,14 +19907,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15388,6 +19969,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15658,6 +20287,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15796,6 +20491,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15822,10 +20523,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16006,6 +20719,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16548,6 +21267,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16574,7 +21305,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16608,6 +21339,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16622,7 +21359,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16632,6 +21369,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16668,12 +21423,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16686,12 +21459,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16710,6 +21477,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16740,6 +21513,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16752,6 +21537,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16772,12 +21563,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16796,12 +21605,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16810,10 +21643,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16832,6 +21769,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/i686-linux-gnu.jl b/lib/i686-linux-gnu.jl index e90163a..09b9ebf 100644 --- a/lib/i686-linux-gnu.jl +++ b/lib/i686-linux-gnu.jl @@ -118,6 +118,12 @@ const VkCommandPool = UInt64 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -125,6 +131,7 @@ const VkCommandPool = UInt64 VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -374,6 +381,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -385,6 +412,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -401,6 +434,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -538,6 +574,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -549,7 +591,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -615,6 +656,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -637,12 +687,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -650,21 +734,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -689,24 +783,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -812,6 +970,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -868,7 +1027,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -878,6 +1041,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -897,9 +1065,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -947,6 +1119,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -957,17 +1131,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1240,6 +1411,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1324,12 +1496,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1489,6 +1668,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1589,8 +1799,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1625,8 +1835,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1763,10 +1976,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1777,7 +1993,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1799,6 +2014,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1833,15 +2051,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1874,6 +2103,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1911,14 +2142,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1972,6 +2205,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1984,6 +2220,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1995,6 +2232,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2013,12 +2251,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2031,6 +2276,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2079,7 +2325,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2117,15 +2371,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2152,6 +2409,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2160,6 +2419,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2168,6 +2428,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2175,6 +2440,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2183,8 +2451,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2195,8 +2464,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2213,6 +2485,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2240,6 +2513,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6002,6 +6279,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6839,6 +7119,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7927,6 +8208,7 @@ const VkSwapchainKHR = UInt64 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8288,6383 +8570,10600 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR = UInt64 -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionParametersKHR = UInt64 -const VkRenderingInfoKHR = VkRenderingInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoChromaSubsamplingFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo - -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo - -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) +end -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +const VkVideoDecodeCapabilityFlagsKHR = VkFlags -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +const VkVideoDecodeUsageFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) -end +const VkVideoDecodeFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR +end + +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR +end + +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) end const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end -struct VkImportMemoryFdInfoKHR +struct VkVideoDecodeH265CapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint + maxLevelIdc::StdVideoH265LevelIdc end -struct VkMemoryFdPropertiesKHR +struct VkVideoDecodeH265SessionParametersAddInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} end -struct VkMemoryGetFdInfoKHR +struct VkVideoDecodeH265SessionParametersCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +const VkDriverIdKHR = VkDriverId -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkConformanceVersionKHR = VkConformanceVersion -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +const VkResolveModeFlagsKHR = VkResolveModeFlags -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end -struct VkImportSemaphoreFdInfoKHR +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkSemaphoreGetFdInfoKHR +struct VkPipelineFragmentShadingRateStateCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures - -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionsKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} -end +const VkDeferredOperationKHR = UInt64 -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end -const VkAttachmentReference2KHR = VkAttachmentReference2 +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end -const VkSubpassDescription2KHR = VkSubpassDescription2 +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end -const VkSubpassDependency2KHR = VkSubpassDependency2 +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -struct VkSharedPresentSurfaceCapabilitiesKHR +struct VkPhysicalDevicePresentIdFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags + presentId::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} - -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +const VkAccessFlags2KHR = VkAccessFlags2 -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkSubmitFlagsKHR = VkSubmitFlags -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +const VkMemoryBarrier2KHR = VkMemoryBarrier2 -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDependencyInfoKHR = VkDependencyInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkSubmitInfo2KHR = VkSubmitInfo2 -const VkFenceImportFlagsKHR = VkFenceImportFlags +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features -struct VkImportFenceFdInfoKHR +struct VkQueueFamilyCheckpointProperties2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkFenceGetFdInfoKHR +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkPerformanceCounterDescriptionKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkQueryPoolPerformanceCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + shaderSubgroupUniformControlFlow::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkResolveImageInfo2KHR = VkResolveImageInfo2 -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkBufferCopy2KHR = VkBufferCopy2 -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkImageCopy2KHR = VkImageCopy2 -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) -end +const VkImageBlit2KHR = VkImageBlit2 -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) -end +const VkBufferImageCopy2KHR = VkBufferImageCopy2 -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +const VkImageResolve2KHR = VkImageResolve2 -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceFormat2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) end -struct VkDisplayPlaneProperties2KHR +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 + +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -struct VkDisplayModeProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -struct VkDisplayPlaneInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} + +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -struct VkDisplayPlaneCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} + +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +const VkDebugReportCallbackEXT = UInt64 + +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo +const VkDebugReportFlagsEXT = VkFlags -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} +end -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkMemoryRequirements2KHR = VkMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +struct VkDebugMarkerObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +struct VkDebugMarkerMarkerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} +end -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -const VkChromaLocationKHR = VkChromaLocation +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationStateStreamCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} + +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -struct VkPhysicalDeviceShaderClockFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 -end +const VkCuModuleNVX = UInt64 -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +const VkCuFunctionNVX = UInt64 + +struct VkCuModuleCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + dataSize::Csize_t + pData::Ptr{Cvoid} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkCuFunctionCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkCuLaunchInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -const VkResolveModeFlagsKHR = VkResolveModeFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkSemaphoreTypeKHR = VkSemaphoreType +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize +end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} + +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFragmentShadingRateAttachmentInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D + supportsTextureGatherLODBiasAMD::VkBool32 end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -struct VkPhysicalDeviceFragmentShadingRateKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +struct VkPhysicalDeviceCornerSampledImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + cornerSampledImage::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -struct VkSurfaceProtectedCapabilitiesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - supportsProtected::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - presentWait::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures - -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures - -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo - -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo - -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo - -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo - -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 +end -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineRobustnessCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkDeferredOperationKHR = UInt64 +const VkConditionalRenderingFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 +end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPipelineInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutablePropertiesKHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -struct VkPipelineExecutableInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +struct VkDisplayPowerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + powerState::VkDisplayPowerStateEXT +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +struct VkDeviceEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceEvent::VkDeviceEventTypeEXT end -struct VkPipelineExecutableStatisticKHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + displayEvent::VkDisplayEventTypeEXT end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkPipelineLibraryCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 +end + +struct VkPresentTimesInfoGOOGLE sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 - -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkAccessFlags2KHR = VkAccessFlags2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagsKHR = VkSubmitFlags +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkDependencyInfoKHR = VkDependencyInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkSubmitInfo2KHR = VkSubmitInfo2 +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -struct VkQueueFamilyCheckpointProperties2NV +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 + maxDiscardRectangles::UInt32 end -struct VkCheckpointData2NV +struct VkPipelineDiscardRectangleStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkXYColorEXT + x::Cfloat + y::Cfloat end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkDebugUtilsMessengerEXT = UInt64 -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) -end +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsLabelEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkImageCopy2KHR = VkImageCopy2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkImageBlit2KHR = VkImageBlit2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkBufferImageCopy2KHR = VkBufferImageCopy2 +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkImageResolve2KHR = VkImageResolve2 +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties - -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements - -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} - -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkDebugReportCallbackEXT = UInt64 - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkDebugReportFlagsEXT = VkFlags +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeEXT = VkSamplerReductionMode -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) -end +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo + +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkPipelineRasterizationStateRasterizationOrderAMD +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -struct VkDebugMarkerObjectNameInfoEXT +struct VkPipelineSampleLocationsStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkDebugMarkerObjectTagInfoEXT +struct VkPhysicalDeviceSampleLocationsPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 end -struct VkDebugMarkerMarkerInfoEXT +struct VkMultisamplePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} + maxSampleLocationGridSize::VkExtent2D end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +end + +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkImageDrmFormatModifierPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + drmFormatModifier::UInt64 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +end + +struct VkDrmFormatModifierPropertiesList2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +const VkValidationCacheEXT = UInt64 -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +const VkValidationCacheCreateFlagsEXT = VkFlags -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 end -const VkCuModuleNVX = UInt64 +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end -const VkCuFunctionNVX = UInt64 +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end -struct VkCuModuleCreateInfoNVX +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkCuLaunchInfoNVX +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkAccelerationStructureNV = UInt64 -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler -end +const VkGeometryTypeNV = VkGeometryTypeKHR -struct VkImageViewAddressPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) -end +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} - -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsKHR = VkFlags -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -struct VkTextureLODGatherFormatPropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 -end +const VkGeometryInstanceFlagsKHR = VkFlags -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +struct VkRayTracingShaderGroupCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 -end - -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -struct VkExternalMemoryImageCreateInfoNV +struct VkGeometryNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkExportMemoryAllocateInfoNV +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -struct VkValidationFlagsEXT +struct VkBindAccelerationStructureMemoryInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} +end -struct VkImageViewASTCDecodeModeEXT +struct VkAccelerationStructureMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +struct VkPhysicalDeviceRayTracingPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -const VkConditionalRenderingFlagsEXT = VkFlags +const VkTransformMatrixNV = VkTransformMatrixKHR -struct VkConditionalRenderingBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 +const VkAabbPositionsNV = VkAabbPositionsKHR + +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -const VkSurfaceCounterFlagsEXT = VkFlags +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -struct VkDisplayPowerInfoEXT +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT + representativeFragmentTest::VkBool32 end -struct VkDeviceEventInfoEXT +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT + representativeFragmentTestEnable::VkBool32 end -struct VkDisplayEventInfoEXT +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + imageViewType::VkImageViewType end -struct VkSwapchainCounterCreateInfoEXT +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkImportMemoryHostPointerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +const VkPipelineCompilerControlFlagsAMD = VkFlags + +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -struct VkPresentTimesInfoGOOGLE +struct VkCalibratedTimestampInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + timeDomain::VkTimeDomainEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCorePropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags - -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkDeviceMemoryOverallocationCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + maxVertexAttribDivisor::UInt32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} - -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +struct VkPhysicalDeviceMeshShaderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + taskShader::VkBool32 + meshShader::VkBool32 end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT +struct VkPhysicalDeviceMeshShaderPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -struct VkXYColorEXT - x::Cfloat - y::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -const VkDebugUtilsMessengerEXT = UInt64 - -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags - -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + imageFootprint::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkPhysicalDeviceExclusiveScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + exclusiveScissor::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -struct VkDebugUtilsMessengerCreateInfoEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +struct VkQueueFamilyCheckpointPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -struct VkDebugUtilsObjectTagInfoEXT +struct VkCheckpointDataNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +const VkPerformanceConfigurationINTEL = UInt64 -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkInitializePerformanceApiInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + pUserData::Ptr{Cvoid} end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPerformanceMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt64 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceOverrideInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +struct VkPerformanceConfigurationAcquireInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceConfigurationTypeINTEL end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT +struct VkPhysicalDevicePCIBusInfoPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 + localDimmingSupport::VkBool32 end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT +struct VkSwapchainDisplayNativeHdrCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT + localDimmingEnable::VkBool32 end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 + fragmentDensityMapAttachment::VkAttachmentReference end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures + +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures + +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties + +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkDrmFormatModifierPropertiesListEXT +const VkShaderCorePropertiesFlagsAMD = VkFlags + +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} + deviceCoherentMemory::VkBool32 end -struct VkImageDrmFormatModifierListCreateInfoEXT +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 -end - -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 + memoryPriority::VkBool32 end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkMemoryPriorityAllocateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -const VkValidationCacheEXT = UInt64 - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 + priority::Cfloat end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits - -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags - -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo - -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +const VkToolPurposeFlagsEXT = VkToolPurposeFlags -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} -end +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo -struct VkPipelineViewportShadingRateImageStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} - -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrixSupportedStages::VkShaderStageFlags end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 end -const VkAccelerationStructureNV = UInt64 +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcrImageArrays::VkBool32 end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkGeometryTrianglesNV +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + provokingVertexMode::VkProvokingVertexModeEXT end -struct VkGeometryAABBNV +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + flags::VkHeadlessSurfaceCreateFlagsEXT end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkGeometryNV - sType::VkStructureType - pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkAccelerationStructureInfoNV +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -struct VkAccelerationStructureCreateInfoNV +struct VkPhysicalDeviceLineRasterizationPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV + lineSubPixelPrecisionBits::UInt32 end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPipelineRasterizationLineStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -struct VkWriteDescriptorSetAccelerationStructureNV +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -struct VkAccelerationStructureMemoryRequirementsInfoNV +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures + +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + indexTypeUint8::VkBool32 end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 + extendedDynamicState::VkBool32 end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -const VkTransformMatrixNV = VkTransformMatrixKHR +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -const VkAabbPositionsNV = VkAabbPositionsKHR +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + +const VkIndirectCommandsLayoutNV = UInt64 + +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags + +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} -struct VkImportMemoryHostPointerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -struct VkMemoryHostPointerPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkPipelineCompilerControlFlagsAMD = VkFlags - -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -struct VkPhysicalDeviceShaderCorePropertiesAMD +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 -end - -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 + inheritedViewportScissor2D::VkBool32 end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 + texelBufferAlignment::VkBool32 end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 -end +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + transform::VkSurfaceTransformFlagBitsKHR end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits - -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags - -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkDeviceMemoryReportFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + deviceMemoryReport::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +struct VkPhysicalDevicePresentBarrierFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageFootprint::VkBool32 + presentBarrier::VkBool32 end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV +struct VkSurfaceCapabilitiesPresentBarrierNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} + presentBarrierSupported::VkBool32 end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV +struct VkSwapchainPresentBarrierCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 + presentBarrierEnable::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags + +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures + +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo + +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -struct VkQueueFamilyCheckpointPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -struct VkCheckpointDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +struct VkDeviceDiagnosticsConfigCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + flags::VkDeviceDiagnosticsConfigFlagsNV end -const VkPerformanceConfigurationINTEL = UInt64 +const VkAccelerationStructureKHR = UInt64 -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -struct VkPerformanceValueDataINTEL +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkDescriptorDataEXT data::NTuple{8, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} - -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL +struct VkDescriptorGetInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkInitializePerformanceApiInfoINTEL +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} + buffer::VkBuffer end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + image::VkImage end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + imageView::VkImageView end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + sampler::VkSampler end -struct VkPerformanceOverrideInfoINTEL +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + graphicsPipelineLibrary::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 +end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV +end + +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat end -struct VkMemoryPriorityAllocateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - priority::Cfloat +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) +end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} -end - -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcr2plane444Formats::VkBool32 end -struct VkCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV + fragmentDensityMapDeferred::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +const VkImageCompressionFlagsEXT = VkFlags + +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +const VkImageCompressionFixedRateFlagsEXT = VkFlags + +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} +end -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +struct VkSubresourceLayout2EXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + subresourceLayout::VkSubresourceLayout end -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkImageSubresource2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + imageSubresource::VkImageSubresource end -struct VkFramebufferMixedSamplesCombinationNV +struct VkImageCompressionPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + attachmentFeedbackLoopLayout::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkPhysicalDevice4444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end - -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 + +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkDeviceFaultCountsEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize +end -struct VkHeadlessSurfaceCreateInfoEXT +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 +end + +struct VkDeviceFaultInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} - -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures - -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} - -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) -end +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexInputDynamicState::VkBool32 end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkVertexInputAttributeDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +const VkDeviceAddressBindingFlagsEXT = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + reportAddressBinding::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkDeviceAddressBindingCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDepthClipControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipControl::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 +end -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkSubpassShadingPipelineCreateInfoHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + renderPass::VkRenderPass + subpass::UInt32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} + +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + invocationMask::VkBool32 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + externalMemoryRDMA::VkBool32 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} + +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPipelinePropertiesIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineIdentifier::NTuple{16, UInt8} end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelinePropertiesIdentifier::VkBool32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampled::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkSubpassResolvePerformanceQueryEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + optimal::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkMultisampledRenderToSingleSampledInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -const VkIndirectCommandsLayoutNV = UInt64 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkIndirectStateFlagsNV = VkFlags +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkGraphicsShaderGroupCreateInfoNV +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + colorWriteEnable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize -end +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -struct VkIndirectCommandsLayoutTokenNV +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR + +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} + minLod::VkBool32 end -struct VkIndirectCommandsLayoutCreateInfoNV +struct VkImageViewMinLodCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} + minLod::Cfloat end -struct VkGeneratedCommandsInfoNV +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize + multiDraw::VkBool32 end -struct VkGeneratedCommandsMemoryRequirementsInfoNV +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +const VkMicromapEXT = UInt64 + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkCommandBufferInheritanceViewportScissorInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} +const VkBuildMicromapFlagsEXT = VkFlags + +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} +end -struct VkRenderPassTransformBeginInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] +end + +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkMicromapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) -end - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkCopyMicromapToMemoryInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -const VkPrivateDataSlotEXT = VkPrivateDataSlot +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 +end -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkDeviceDiagnosticsConfigCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) +end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkAccelerationStructureMotionInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +struct VkSamplerBorderColorComponentMappingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + components::VkComponentMapping + srgb::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pageableDeviceLocalMemory::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end -end +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetHostMapping::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDescriptorSetBindingReferenceVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkDescriptorSetLayoutHostMappingInfoVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 + nonSeamlessCubeMap::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkCopyCommandTransformInfoQCOM +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 + indirectCopy::VkBool32 end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 + supportedQueues::VkQueueFlags end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 -end +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} -end +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 + memoryDecompression::VkBool32 end -struct VkVertexInputBindingDescription2EXT +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -struct VkPhysicalDeviceDrmPropertiesEXT +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 + linearColorAttachment::VkBool32 end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipControl::VkBool32 + imageCompressionControlSwapchain::VkBool32 end -struct VkPipelineViewportDepthClipControlCreateInfoEXT +struct VkImageViewSampleWeightCreateInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT +struct VkPhysicalDeviceImageProcessingFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkSubpassShadingPipelineCreateInfoHUAWEI +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp +end + +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - invocationMask::VkBool32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -const VkRemoteAddressNV = Ptr{Cvoid} +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 +end -struct VkMemoryGetRemoteAddressInfoNV +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + disallowMerging::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 +end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingInfoLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingListLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} +end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} + +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionNV = UInt64 + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPipelineColorWriteCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} +const VkOpticalFlowUsageFlagsNV = VkFlags -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +const VkOpticalFlowExecuteFlagsNV = VkFlags -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkPhysicalDeviceOpticalFlowFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + opticalFlow::VkBool32 +end -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowImageFormatInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + usage::VkOpticalFlowUsageFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + format::VkFormat end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 +struct VkOpticalFlowSessionCreatePrivateDataInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 +struct VkOpticalFlowExecuteInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR = UInt64 - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15168,6 +19667,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15302,12 +19883,10 @@ const VK_NULL_HANDLE = Culonglong(0) const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15328,14 +19907,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15388,6 +19969,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15658,6 +20287,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15796,6 +20491,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15822,10 +20523,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16006,6 +20719,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16548,6 +21267,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16574,7 +21305,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16608,6 +21339,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16622,7 +21359,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16632,6 +21369,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16668,12 +21423,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16686,12 +21459,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16710,6 +21477,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16740,6 +21513,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16752,6 +21537,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16772,12 +21563,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16796,12 +21605,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16810,10 +21643,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16832,6 +21769,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/i686-linux-musl.jl b/lib/i686-linux-musl.jl index e90163a..09b9ebf 100644 --- a/lib/i686-linux-musl.jl +++ b/lib/i686-linux-musl.jl @@ -118,6 +118,12 @@ const VkCommandPool = UInt64 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -125,6 +131,7 @@ const VkCommandPool = UInt64 VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -374,6 +381,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -385,6 +412,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -401,6 +434,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -538,6 +574,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -549,7 +591,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -615,6 +656,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -637,12 +687,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -650,21 +734,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -689,24 +783,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -812,6 +970,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -868,7 +1027,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -878,6 +1041,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -897,9 +1065,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -947,6 +1119,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -957,17 +1131,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1240,6 +1411,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1324,12 +1496,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1489,6 +1668,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1589,8 +1799,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1625,8 +1835,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1763,10 +1976,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1777,7 +1993,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1799,6 +2014,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1833,15 +2051,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1874,6 +2103,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1911,14 +2142,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1972,6 +2205,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1984,6 +2220,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1995,6 +2232,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2013,12 +2251,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2031,6 +2276,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2079,7 +2325,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2117,15 +2371,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2152,6 +2409,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2160,6 +2419,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2168,6 +2428,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2175,6 +2440,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2183,8 +2451,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2195,8 +2464,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2213,6 +2485,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2240,6 +2513,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6002,6 +6279,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6839,6 +7119,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7927,6 +8208,7 @@ const VkSwapchainKHR = UInt64 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8288,6383 +8570,10600 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR = UInt64 -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionParametersKHR = UInt64 -const VkRenderingInfoKHR = VkRenderingInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoChromaSubsamplingFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo - -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo - -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) +end -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +const VkVideoDecodeCapabilityFlagsKHR = VkFlags -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +const VkVideoDecodeUsageFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) -end +const VkVideoDecodeFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR +end + +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR +end + +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) end const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end -struct VkImportMemoryFdInfoKHR +struct VkVideoDecodeH265CapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint + maxLevelIdc::StdVideoH265LevelIdc end -struct VkMemoryFdPropertiesKHR +struct VkVideoDecodeH265SessionParametersAddInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} end -struct VkMemoryGetFdInfoKHR +struct VkVideoDecodeH265SessionParametersCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +const VkDriverIdKHR = VkDriverId -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkConformanceVersionKHR = VkConformanceVersion -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +const VkResolveModeFlagsKHR = VkResolveModeFlags -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end -struct VkImportSemaphoreFdInfoKHR +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkSemaphoreGetFdInfoKHR +struct VkPipelineFragmentShadingRateStateCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures - -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -struct VkPresentRegionsKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} -end +const VkDeferredOperationKHR = UInt64 -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end -const VkAttachmentReference2KHR = VkAttachmentReference2 +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end -const VkSubpassDescription2KHR = VkSubpassDescription2 +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end -const VkSubpassDependency2KHR = VkSubpassDependency2 +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -struct VkSharedPresentSurfaceCapabilitiesKHR +struct VkPhysicalDevicePresentIdFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags + presentId::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} - -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) -end +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +const VkAccessFlags2KHR = VkAccessFlags2 -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkSubmitFlagsKHR = VkSubmitFlags -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +const VkMemoryBarrier2KHR = VkMemoryBarrier2 -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDependencyInfoKHR = VkDependencyInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkSubmitInfo2KHR = VkSubmitInfo2 -const VkFenceImportFlagsKHR = VkFenceImportFlags +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features -struct VkImportFenceFdInfoKHR +struct VkQueueFamilyCheckpointProperties2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkFenceGetFdInfoKHR +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkPerformanceCounterDescriptionKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -struct VkQueryPoolPerformanceCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + shaderSubgroupUniformControlFlow::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +const VkResolveImageInfo2KHR = VkResolveImageInfo2 -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkBufferCopy2KHR = VkBufferCopy2 -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkImageCopy2KHR = VkImageCopy2 -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) -end +const VkImageBlit2KHR = VkImageBlit2 -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) -end +const VkBufferImageCopy2KHR = VkBufferImageCopy2 -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +const VkImageResolve2KHR = VkImageResolve2 -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -struct VkSurfaceFormat2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) end -struct VkDisplayPlaneProperties2KHR +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 + +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -struct VkDisplayModeProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -struct VkDisplayPlaneInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} + +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -struct VkDisplayPlaneCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} + +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +const VkDebugReportCallbackEXT = UInt64 + +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo +const VkDebugReportFlagsEXT = VkFlags -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} +end -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkMemoryRequirements2KHR = VkMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +struct VkDebugMarkerObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +struct VkDebugMarkerMarkerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} +end -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -const VkChromaLocationKHR = VkChromaLocation +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +end -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationStateStreamCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} + +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -struct VkPhysicalDeviceShaderClockFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 -end +const VkCuModuleNVX = UInt64 -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +const VkCuFunctionNVX = UInt64 + +struct VkCuModuleCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + dataSize::Csize_t + pData::Ptr{Cvoid} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkCuFunctionCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkCuLaunchInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -const VkResolveModeFlagsKHR = VkResolveModeFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkSemaphoreTypeKHR = VkSemaphoreType +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize +end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} + +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFragmentShadingRateAttachmentInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D + supportsTextureGatherLODBiasAMD::VkBool32 end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -struct VkPhysicalDeviceFragmentShadingRateKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end + +struct VkPhysicalDeviceCornerSampledImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + cornerSampledImage::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -struct VkSurfaceProtectedCapabilitiesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - supportsProtected::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - presentWait::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures - -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures - -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo - -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo - -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo - -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo - -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 +end -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineRobustnessCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkDeferredOperationKHR = UInt64 +const VkConditionalRenderingFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 +end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkPipelineInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutablePropertiesKHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -struct VkPipelineExecutableInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +struct VkDisplayPowerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + powerState::VkDisplayPowerStateEXT +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +struct VkDeviceEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceEvent::VkDeviceEventTypeEXT end -struct VkPipelineExecutableStatisticKHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + displayEvent::VkDisplayEventTypeEXT end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkPipelineLibraryCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 +end + +struct VkPresentTimesInfoGOOGLE sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 - -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkAccessFlags2KHR = VkAccessFlags2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSubmitFlagsKHR = VkSubmitFlags +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkDependencyInfoKHR = VkDependencyInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkSubmitInfo2KHR = VkSubmitInfo2 +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -struct VkQueueFamilyCheckpointProperties2NV +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 + maxDiscardRectangles::UInt32 end -struct VkCheckpointData2NV +struct VkPipelineDiscardRectangleStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkXYColorEXT + x::Cfloat + y::Cfloat end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkDebugUtilsMessengerEXT = UInt64 -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) -end +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) -end +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsLabelEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDebugUtilsObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkImageCopy2KHR = VkImageCopy2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkImageBlit2KHR = VkImageBlit2 +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkBufferImageCopy2KHR = VkBufferImageCopy2 +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkImageResolve2KHR = VkImageResolve2 +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties - -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements - -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} - -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkDebugReportCallbackEXT = UInt64 - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkDebugReportFlagsEXT = VkFlags +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeEXT = VkSamplerReductionMode -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) -end +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) -end +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo + +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkPipelineRasterizationStateRasterizationOrderAMD +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -struct VkDebugMarkerObjectNameInfoEXT +struct VkPipelineSampleLocationsStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkDebugMarkerObjectTagInfoEXT +struct VkPhysicalDeviceSampleLocationsPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 end -struct VkDebugMarkerMarkerInfoEXT +struct VkMultisamplePropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} + maxSampleLocationGridSize::VkExtent2D end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +end + +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkImageDrmFormatModifierPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + drmFormatModifier::UInt64 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +end + +struct VkDrmFormatModifierPropertiesList2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +const VkValidationCacheEXT = UInt64 -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +const VkValidationCacheCreateFlagsEXT = VkFlags -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 end -const VkCuModuleNVX = UInt64 +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end -const VkCuFunctionNVX = UInt64 +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end -struct VkCuModuleCreateInfoNVX +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkCuLaunchInfoNVX +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkAccelerationStructureNV = UInt64 -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler -end +const VkGeometryTypeNV = VkGeometryTypeKHR -struct VkImageViewAddressPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) -end +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} - -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsKHR = VkFlags -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -struct VkTextureLODGatherFormatPropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 -end +const VkGeometryInstanceFlagsKHR = VkFlags -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +struct VkRayTracingShaderGroupCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 -end - -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -struct VkExternalMemoryImageCreateInfoNV +struct VkGeometryNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkExportMemoryAllocateInfoNV +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -struct VkValidationFlagsEXT +struct VkBindAccelerationStructureMemoryInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} +end -struct VkImageViewASTCDecodeModeEXT +struct VkAccelerationStructureMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +struct VkPhysicalDeviceRayTracingPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -const VkConditionalRenderingFlagsEXT = VkFlags +const VkTransformMatrixNV = VkTransformMatrixKHR -struct VkConditionalRenderingBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 +const VkAabbPositionsNV = VkAabbPositionsKHR + +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -const VkSurfaceCounterFlagsEXT = VkFlags +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -struct VkDisplayPowerInfoEXT +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT + representativeFragmentTest::VkBool32 end -struct VkDeviceEventInfoEXT +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT + representativeFragmentTestEnable::VkBool32 end -struct VkDisplayEventInfoEXT +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + imageViewType::VkImageViewType end -struct VkSwapchainCounterCreateInfoEXT +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkImportMemoryHostPointerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +const VkPipelineCompilerControlFlagsAMD = VkFlags + +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -struct VkPresentTimesInfoGOOGLE +struct VkCalibratedTimestampInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + timeDomain::VkTimeDomainEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCorePropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags - -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkDeviceMemoryOverallocationCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + maxVertexAttribDivisor::UInt32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} - -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +struct VkPhysicalDeviceMeshShaderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + taskShader::VkBool32 + meshShader::VkBool32 end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT +struct VkPhysicalDeviceMeshShaderPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -struct VkXYColorEXT - x::Cfloat - y::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -const VkDebugUtilsMessengerEXT = UInt64 - -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags - -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + imageFootprint::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkPhysicalDeviceExclusiveScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + exclusiveScissor::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -struct VkDebugUtilsMessengerCreateInfoEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +struct VkQueueFamilyCheckpointPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -struct VkDebugUtilsObjectTagInfoEXT +struct VkCheckpointDataNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +const VkPerformanceConfigurationINTEL = UInt64 -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkInitializePerformanceApiInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + pUserData::Ptr{Cvoid} end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPerformanceMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt64 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkPerformanceOverrideInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +struct VkPerformanceConfigurationAcquireInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceConfigurationTypeINTEL end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT +struct VkPhysicalDevicePCIBusInfoPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 + localDimmingSupport::VkBool32 end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT +struct VkSwapchainDisplayNativeHdrCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT + localDimmingEnable::VkBool32 end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 + fragmentDensityMapAttachment::VkAttachmentReference end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures + +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures + +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties + +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -struct VkDrmFormatModifierPropertiesListEXT +const VkShaderCorePropertiesFlagsAMD = VkFlags + +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} + deviceCoherentMemory::VkBool32 end -struct VkImageDrmFormatModifierListCreateInfoEXT +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 -end - -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 + memoryPriority::VkBool32 end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkMemoryPriorityAllocateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end - -const VkValidationCacheEXT = UInt64 - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 + priority::Cfloat end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits - -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags - -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo - -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +const VkToolPurposeFlagsEXT = VkToolPurposeFlags -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} -end +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo -struct VkPipelineViewportShadingRateImageStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} - -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrixSupportedStages::VkShaderStageFlags end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 end -const VkAccelerationStructureNV = UInt64 +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcrImageArrays::VkBool32 end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkGeometryTrianglesNV +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + provokingVertexMode::VkProvokingVertexModeEXT end -struct VkGeometryAABBNV +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + flags::VkHeadlessSurfaceCreateFlagsEXT end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkGeometryNV - sType::VkStructureType - pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -struct VkAccelerationStructureInfoNV +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -struct VkAccelerationStructureCreateInfoNV +struct VkPhysicalDeviceLineRasterizationPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV + lineSubPixelPrecisionBits::UInt32 end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPipelineRasterizationLineStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -struct VkWriteDescriptorSetAccelerationStructureNV +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -struct VkAccelerationStructureMemoryRequirementsInfoNV +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures + +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + indexTypeUint8::VkBool32 end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 + extendedDynamicState::VkBool32 end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -const VkTransformMatrixNV = VkTransformMatrixKHR +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -const VkAabbPositionsNV = VkAabbPositionsKHR +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + +const VkIndirectCommandsLayoutNV = UInt64 + +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags + +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} -struct VkImportMemoryHostPointerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -struct VkMemoryHostPointerPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkPipelineCompilerControlFlagsAMD = VkFlags - -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -struct VkPhysicalDeviceShaderCorePropertiesAMD +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 -end - -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 + inheritedViewportScissor2D::VkBool32 end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 + texelBufferAlignment::VkBool32 end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 -end +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + transform::VkSurfaceTransformFlagBitsKHR end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits - -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags - -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkDeviceMemoryReportFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + deviceMemoryReport::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +struct VkPhysicalDevicePresentBarrierFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageFootprint::VkBool32 + presentBarrier::VkBool32 end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV +struct VkSurfaceCapabilitiesPresentBarrierNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} + presentBarrierSupported::VkBool32 end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV +struct VkSwapchainPresentBarrierCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 + presentBarrierEnable::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags + +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures + +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo + +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -struct VkQueueFamilyCheckpointPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -struct VkCheckpointDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +struct VkDeviceDiagnosticsConfigCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + flags::VkDeviceDiagnosticsConfigFlagsNV end -const VkPerformanceConfigurationINTEL = UInt64 +const VkAccelerationStructureKHR = UInt64 -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -struct VkPerformanceValueDataINTEL +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkDescriptorDataEXT data::NTuple{8, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} - -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL +struct VkDescriptorGetInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkInitializePerformanceApiInfoINTEL +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} + buffer::VkBuffer end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + image::VkImage end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + imageView::VkImageView end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + sampler::VkSampler end -struct VkPerformanceOverrideInfoINTEL +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + graphicsPipelineLibrary::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 +end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV +end + +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat end -struct VkMemoryPriorityAllocateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - priority::Cfloat +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) +end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} -end - -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcr2plane444Formats::VkBool32 end -struct VkCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV + fragmentDensityMapDeferred::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +const VkImageCompressionFlagsEXT = VkFlags + +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +const VkImageCompressionFixedRateFlagsEXT = VkFlags + +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} +end -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +struct VkSubresourceLayout2EXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + subresourceLayout::VkSubresourceLayout end -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkImageSubresource2EXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + imageSubresource::VkImageSubresource end -struct VkFramebufferMixedSamplesCombinationNV +struct VkImageCompressionPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + attachmentFeedbackLoopLayout::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkPhysicalDevice4444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end - -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 + +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkDeviceFaultCountsEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize +end -struct VkHeadlessSurfaceCreateInfoEXT +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 +end + +struct VkDeviceFaultInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} - -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures - -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} - -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) -end +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexInputDynamicState::VkBool32 end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkVertexInputAttributeDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +const VkDeviceAddressBindingFlagsEXT = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + reportAddressBinding::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkDeviceAddressBindingCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDepthClipControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipControl::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 +end -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkSubpassShadingPipelineCreateInfoHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + renderPass::VkRenderPass + subpass::UInt32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} + +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + invocationMask::VkBool32 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + externalMemoryRDMA::VkBool32 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} + +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPipelinePropertiesIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineIdentifier::NTuple{16, UInt8} end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelinePropertiesIdentifier::VkBool32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampled::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkSubpassResolvePerformanceQueryEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + optimal::VkBool32 end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +struct VkMultisampledRenderToSingleSampledInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -const VkIndirectCommandsLayoutNV = UInt64 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkIndirectStateFlagsNV = VkFlags +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkGraphicsShaderGroupCreateInfoNV +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + colorWriteEnable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize -end +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -struct VkIndirectCommandsLayoutTokenNV +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR + +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} + minLod::VkBool32 end -struct VkIndirectCommandsLayoutCreateInfoNV +struct VkImageViewMinLodCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} + minLod::Cfloat end -struct VkGeneratedCommandsInfoNV +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize + multiDraw::VkBool32 end -struct VkGeneratedCommandsMemoryRequirementsInfoNV +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +const VkMicromapEXT = UInt64 + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkCommandBufferInheritanceViewportScissorInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} +const VkBuildMicromapFlagsEXT = VkFlags + +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} +end -struct VkRenderPassTransformBeginInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] +end + +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkMicromapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) -end - -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkCopyMicromapToMemoryInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -const VkPrivateDataSlotEXT = VkPrivateDataSlot +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 +end -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkDeviceDiagnosticsConfigCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) +end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) +end -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkAccelerationStructureMotionInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +struct VkSamplerBorderColorComponentMappingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + components::VkComponentMapping + srgb::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pageableDeviceLocalMemory::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end -end +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetHostMapping::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDescriptorSetBindingReferenceVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkDescriptorSetLayoutHostMappingInfoVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +end + +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 + nonSeamlessCubeMap::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkCopyCommandTransformInfoQCOM +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 + indirectCopy::VkBool32 end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 + supportedQueues::VkQueueFlags end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 -end +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} -end +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 + memoryDecompression::VkBool32 end -struct VkVertexInputBindingDescription2EXT +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -struct VkPhysicalDeviceDrmPropertiesEXT +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 + linearColorAttachment::VkBool32 end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipControl::VkBool32 + imageCompressionControlSwapchain::VkBool32 end -struct VkPipelineViewportDepthClipControlCreateInfoEXT +struct VkImageViewSampleWeightCreateInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT +struct VkPhysicalDeviceImageProcessingFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkSubpassShadingPipelineCreateInfoHUAWEI +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp +end + +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end + +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) +end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - invocationMask::VkBool32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -const VkRemoteAddressNV = Ptr{Cvoid} +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 +end -struct VkMemoryGetRemoteAddressInfoNV +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + disallowMerging::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 +end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingInfoLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingListLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} +end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} + +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionNV = UInt64 + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPipelineColorWriteCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} +const VkOpticalFlowUsageFlagsNV = VkFlags -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +const VkOpticalFlowExecuteFlagsNV = VkFlags -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkPhysicalDeviceOpticalFlowFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + opticalFlow::VkBool32 +end -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowImageFormatInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + usage::VkOpticalFlowUsageFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + format::VkFormat end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 +struct VkOpticalFlowSessionCreatePrivateDataInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 +struct VkOpticalFlowExecuteInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR = UInt64 - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15168,6 +19667,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15302,12 +19883,10 @@ const VK_NULL_HANDLE = Culonglong(0) const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15328,14 +19907,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15388,6 +19969,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15658,6 +20287,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15796,6 +20491,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15822,10 +20523,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16006,6 +20719,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16548,6 +21267,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16574,7 +21305,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16608,6 +21339,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16622,7 +21359,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16632,6 +21369,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16668,12 +21423,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16686,12 +21459,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16710,6 +21477,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16740,6 +21513,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16752,6 +21537,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16772,12 +21563,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16796,12 +21605,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16810,10 +21643,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16832,6 +21769,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/i686-w64-mingw32.jl b/lib/i686-w64-mingw32.jl index 496434e..8b409c1 100644 --- a/lib/i686-w64-mingw32.jl +++ b/lib/i686-w64-mingw32.jl @@ -138,6 +138,12 @@ const VkCommandPool = UInt64 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -145,6 +151,7 @@ const VkCommandPool = UInt64 VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -394,6 +401,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -405,6 +432,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -421,6 +454,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -558,6 +594,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -569,7 +611,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -635,6 +676,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -657,12 +707,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -670,21 +754,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -709,24 +803,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -832,6 +990,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -888,7 +1047,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -898,6 +1061,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -917,9 +1085,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -967,6 +1139,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -977,17 +1151,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1260,6 +1431,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1344,12 +1516,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1509,6 +1688,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1609,8 +1819,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1645,8 +1855,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1783,10 +1996,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1797,7 +2013,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1819,6 +2034,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1853,15 +2071,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1894,6 +2123,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1931,14 +2162,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1992,6 +2225,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2004,6 +2240,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2015,6 +2252,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2033,12 +2271,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2051,6 +2296,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2099,7 +2345,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2137,15 +2391,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2172,6 +2429,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2180,6 +2439,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2188,6 +2448,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2195,6 +2460,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2203,8 +2471,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2215,8 +2484,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2233,6 +2505,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2260,6 +2533,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6022,6 +6299,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6859,6 +7139,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7947,6 +8228,7 @@ const VkSwapchainKHR = UInt64 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8308,6383 +8590,10600 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR = UInt64 -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionParametersKHR = UInt64 -const VkRenderingInfoKHR = VkRenderingInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoChromaSubsamplingFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo - -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo - -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) +end -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +const VkVideoDecodeCapabilityFlagsKHR = VkFlags -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +const VkVideoDecodeUsageFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) -end +const VkVideoDecodeFlagsKHR = VkFlags -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR +end + +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR +end + +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) end const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} + +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end -struct VkImportMemoryFdInfoKHR +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +const VkDeferredOperationKHR = UInt64 + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end + +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end + +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end + +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end + +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -struct VkMemoryFdPropertiesKHR +struct VkPresentIdKHR sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -struct VkMemoryGetFdInfoKHR +struct VkPhysicalDevicePresentIdFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} - -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end - -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) + presentId::VkBool32 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +const VkAccessFlags2KHR = VkAccessFlags2 -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +const VkSubmitFlagsKHR = VkSubmitFlags -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +const VkMemoryBarrier2KHR = VkMemoryBarrier2 -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end +const VkDependencyInfoKHR = VkDependencyInfo -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end +const VkSubmitInfo2KHR = VkSubmitInfo2 -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features -struct VkImportSemaphoreFdInfoKHR +struct VkQueueFamilyCheckpointProperties2NV sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkSemaphoreGetFdInfoKHR +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkPresentRegionsKHR +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + fragmentShaderBarycentric::VkBool32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate - -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType - -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags - -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry - -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) -end +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) -end +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) -end +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +const VkResolveImageInfo2KHR = VkResolveImageInfo2 -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +const VkBufferCopy2KHR = VkBufferCopy2 -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +const VkImageCopy2KHR = VkImageCopy2 -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +const VkImageBlit2KHR = VkImageBlit2 -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkBufferImageCopy2KHR = VkBufferImageCopy2 -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkImageResolve2KHR = VkImageResolve2 -const VkAttachmentReference2KHR = VkAttachmentReference2 +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} -const VkSubpassDescription2KHR = VkSubpassDescription2 +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} -const VkSubpassDependency2KHR = VkSubpassDependency2 +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} -const VkSubpassEndInfoKHR = VkSubpassEndInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) end -struct VkSharedPresentSurfaceCapabilitiesKHR +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 + +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} + +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkFenceImportFlagsKHR = VkFenceImportFlags - -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits - -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkFenceGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT = UInt64 -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +const VkDebugReportFlagsEXT = VkFlags -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) -end +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} + +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkPipelineRasterizationStateRasterizationOrderAMD sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + rasterizationOrder::VkRasterizationOrderAMD end -struct VkPerformanceCounterKHR +struct VkDebugMarkerObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPerformanceCounterDescriptionKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkQueryPoolPerformanceCreateInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -struct VkAcquireProfilingLockInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -struct VkPerformanceQuerySubmitInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - counterPassIndex::UInt32 +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +struct VkPipelineRasterizationStateStreamCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -struct VkSurfaceFormat2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -struct VkDisplayPlaneProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -struct VkDisplayModeProperties2KHR +const VkCuModuleNVX = UInt64 + +const VkCuFunctionNVX = UInt64 + +struct VkCuModuleCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + dataSize::Csize_t + pData::Ptr{Cvoid} end -struct VkDisplayPlaneInfo2KHR +struct VkCuFunctionCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -struct VkDisplayPlaneCapabilities2KHR +struct VkCuLaunchInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo - -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion - -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion - -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange - -const VkChromaLocationKHR = VkChromaLocation - -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo - -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo - -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +struct VkTextureLODGatherFormatPropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsTextureGatherLODBiasAMD::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkExternalMemoryImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkExportMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} +end -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat +end -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkPhysicalDeviceASTCDecodeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 + decodeModeSharedExponent::VkBool32 end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + pipelineRobustness::VkBool32 end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +const VkConditionalRenderingFlagsEXT = VkFlags -const VkResolveModeFlagsKHR = VkResolveModeFlags +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT +end -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 +end -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 +end -const VkSemaphoreTypeKHR = VkSemaphoreType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +end -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) -end +const VkSurfaceCounterFlagsEXT = VkFlags -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +struct VkSurfaceCapabilities2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +end -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +end -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +end + +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + powerState::VkDisplayPowerStateEXT end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 + deviceEvent::VkDeviceEventTypeEXT end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 + displayEvent::VkDisplayEventTypeEXT end -struct VkPhysicalDeviceFragmentShadingRateKHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +end -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 +end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) -end +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -const VkDeferredOperationKHR = UInt64 - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) -end +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkXYColorEXT + x::Cfloat + y::Cfloat end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} + +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkDebugUtilsMessengerEXT = UInt64 + +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags + +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags + +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags + +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags + +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkPipelineInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPipelineExecutablePropertiesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkPipelineExecutableInfoKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} + +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -struct VkPipelineExecutableStatisticKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -struct VkPipelineExecutableInternalRepresentationKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) +end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +end -struct VkPipelineLibraryCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -struct VkPhysicalDevicePresentIdFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentId::VkBool32 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkAccessFlags2KHR = VkAccessFlags2 +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkSubmitFlagsKHR = VkSubmitFlags +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -const VkDependencyInfoKHR = VkDependencyInfo +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -const VkSubmitInfo2KHR = VkSubmitInfo2 +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end -struct VkQueueFamilyCheckpointProperties2NV +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -struct VkCheckpointData2NV +struct VkPipelineSampleLocationsStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) -end +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 +struct VkImageDrmFormatModifierListCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} +end -const VkImageCopy2KHR = VkImageCopy2 +struct VkImageDrmFormatModifierExplicitCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} +end -const VkImageBlit2KHR = VkImageBlit2 +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 +end -const VkBufferImageCopy2KHR = VkBufferImageCopy2 +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +end -const VkImageResolve2KHR = VkImageResolve2 +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} +const VkValidationCacheEXT = UInt64 -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} +const VkValidationCacheCreateFlagsEXT = VkFlags -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkFormatProperties3KHR = VkFormatProperties3 +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 end -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPipelineViewportShadingRateImageStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPhysicalDeviceShadingRateImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPhysicalDeviceShadingRateImagePropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -const VkDebugReportCallbackEXT = UInt64 - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} - -struct VkDebugReportCallbackCreateInfoEXT +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 -end +const VkAccelerationStructureNV = UInt64 -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR + +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR + +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +const VkGeometryInstanceFlagsKHR = VkFlags + +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR + +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR + +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +const VkBuildAccelerationStructureFlagsKHR = VkFlags + +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR + +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR + +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkAccelerationStructureInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkBindAccelerationStructureMemoryInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkWriteDescriptorSetAccelerationStructureNV sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkAccelerationStructureMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkPhysicalDeviceRayTracingPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +const VkTransformMatrixNV = VkTransformMatrixKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} -const VkCuModuleNVX = UInt64 +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} -const VkCuFunctionNVX = UInt64 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} -struct VkCuModuleCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} -struct VkCuFunctionCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} -struct VkCuLaunchInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -struct VkImageViewAddressPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTestEnable::VkBool32 end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPhysicalDeviceImageViewImageFormatInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageViewType::VkImageViewType end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkFilterCubicImageViewImageFormatPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -struct VkTextureLODGatherFormatPropertiesAMD +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR + +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 end -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize end -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} + +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +end + +const VkPipelineCompilerControlFlagsAMD = VkFlags + +struct VkPipelineCompilerControlCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT end -const VkExternalMemoryFeatureFlagsNV = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -struct VkExternalMemoryImageCreateInfoNV +struct VkPhysicalDeviceShaderCorePropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end + +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 end -struct VkExportMemoryAllocateInfoNV +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV -end - -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkValidationFlagsEXT +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + maxVertexAttribDivisor::UInt32 end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end -struct VkImageViewASTCDecodeModeEXT +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -const VkConditionalRenderingFlagsEXT = VkFlags +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -struct VkConditionalRenderingBeginInfoEXT +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo + +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback + +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPhysicalDeviceMeshShaderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + taskShader::VkBool32 + meshShader::VkBool32 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPhysicalDeviceMeshShaderPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} - -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} - -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkSurfaceCounterFlagsEXT = VkFlags +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR -struct VkSurfaceCapabilities2EXT +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) -end - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) + imageFootprint::VkBool32 end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -struct VkDisplayEventInfoEXT +struct VkQueueFamilyCheckpointPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + checkpointExecutionStageMask::VkPipelineStageFlags end -struct VkSwapchainCounterCreateInfoEXT +struct VkCheckpointDataNV sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) -end +const VkPerformanceConfigurationINTEL = UInt64 -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPresentTimesInfoGOOGLE - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} + +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + pUserData::Ptr{Cvoid} end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags - -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV -end +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + marker::UInt64 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -const VkDebugUtilsMessengerEXT = UInt64 +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end + +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDevicePCIBusInfoPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + localDimmingSupport::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkSwapchainDisplayNativeHdrCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + localDimmingEnable::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -struct VkDebugUtilsMessengerCreateInfoEXT +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +struct VkRenderPassFragmentDensityMapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMapAttachment::VkAttachmentReference +end -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +struct VkPhysicalDeviceShaderCoreProperties2AMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryPriority::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkToolPurposeFlagsEXT = VkToolPurposeFlags -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkSamplerReductionModeEXT = VkSamplerReductionMode - -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo - -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties - -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures - -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties - -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +end -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 end -struct VkSampleLocationsInfoEXT +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} -end - -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineSampleLocationsStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkMultisamplePropertiesEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 + coverageReductionMode::VkBool32 end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT +struct VkPipelineCoverageReductionStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT +struct VkFramebufferMixedSamplesCombinationNV sType::VkStructureType pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 + ycbcrImageArrays::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +struct VkPhysicalDeviceProvokingVertexPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + provokingVertexMode::VkProvokingVertexModeEXT end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} + flags::VkHeadlessSurfaceCreateFlagsEXT end -struct VkImageDrmFormatModifierListCreateInfoEXT +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +struct VkPhysicalDeviceLineRasterizationPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + lineSubPixelPrecisionBits::UInt32 end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkPipelineRasterizationLineStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -const VkValidationCacheEXT = UInt64 - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + extendedDynamicState::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +end -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPhysicalDeviceShadingRateImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -struct VkPhysicalDeviceShadingRateImagePropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) -end +const VkPresentScalingFlagsEXT = VkFlags -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) -end +const VkPresentGravityFlagsEXT = VkFlags -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR end -const VkAccelerationStructureNV = UInt64 +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D +end -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 +end -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -const VkGeometryTypeNV = VkGeometryTypeKHR +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT +end -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR +const VkIndirectCommandsLayoutNV = UInt64 -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR +const VkIndirectStateFlagsNV = VkFlags -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -struct VkRayTracingShaderGroupCreateInfoNV +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + deviceGeneratedCommands::VkBool32 end -struct VkRayTracingPipelineCreateInfoNV +struct VkGraphicsShaderGroupCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags stageCount::UInt32 pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} end -struct VkGeometryTrianglesNV +struct VkGraphicsPipelineShaderGroupsCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} end -struct VkGeometryAABBNV - sType::VkStructureType - pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType end -struct VkGeometryNV - sType::VkStructureType - pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -struct VkAccelerationStructureInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkWriteDescriptorSetAccelerationStructureNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkAccelerationStructureMemoryRequirementsInfoNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} + +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkTransformMatrixNV = VkTransformMatrixKHR +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -const VkAabbPositionsNV = VkAabbPositionsKHR +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +end -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +struct VkCommandBufferInheritanceViewportScissorInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + texelBufferAlignment::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +struct VkRenderPassTransformBeginInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +const VkDeviceMemoryReportFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceMemoryReport::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +struct VkDeviceMemoryReportCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkPrivateDataSlotEXT = VkPrivateDataSlot -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + diagnosticsConfig::VkBool32 end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkDeviceDiagnosticsConfigCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + flags::VkDeviceDiagnosticsConfigFlagsNV end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +const VkAccelerationStructureKHR = UInt64 -struct VkImportMemoryHostPointerInfoEXT +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -struct VkMemoryHostPointerPropertiesEXT +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} - -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end - -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end - -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -const VkPipelineCompilerControlFlagsAMD = VkFlags - -struct VkPipelineCompilerControlCreateInfoAMD +struct VkDescriptorAddressInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -struct VkCalibratedTimestampInfoEXT +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT sType::VkStructureType pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT + buffer::VkBuffer end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkPhysicalDeviceShaderCorePropertiesAMD +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 + type::VkDescriptorType + data::VkDescriptorDataEXT end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +struct VkBufferCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + image::VkImage end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 + imageView::VkImageView end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +struct VkSamplerCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampler::VkSampler end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -struct VkPhysicalDeviceMeshShaderFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -struct VkPhysicalDeviceMeshShaderPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkQueueFamilyCheckpointPropertiesNV +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + graphicsPipelineLibrary::VkBool32 end -struct VkCheckpointDataNV +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} +struct VkGraphicsPipelineLibraryCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkGraphicsPipelineLibraryFlagsEXT +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 +end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -const VkPerformanceConfigurationINTEL = UInt64 +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 -end +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 -end +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags -struct VkPerformanceValueDataINTEL +struct VkDeviceOrHostAddressConstKHR data::NTuple{8, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end - -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} - -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val - end - ref[] -end - -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL -end - -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} -end - -struct VkQueryPoolPerformanceQueryCreateInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -struct VkPerformanceMarkerInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - marker::UInt64 +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkPerformanceOverrideInfoINTEL +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -struct VkPerformanceConfigurationAcquireInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} + +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcr2plane444Formats::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMapDeferred::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkCopyCommandTransformInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) -end +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) -end +const VkImageCompressionFlagsEXT = VkFlags -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +const VkImageCompressionFixedRateFlagsEXT = VkFlags + +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkSubresourceLayout2EXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + subresourceLayout::VkSubresourceLayout end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkImageSubresource2EXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + imageSubresource::VkImageSubresource end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkImageCompressionPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + attachmentFeedbackLoopLayout::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDevice4444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 +end + +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize +end -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize +end -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -const VkShaderCorePropertiesFlagsAMD = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} -struct VkPhysicalDeviceShaderCoreProperties2AMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + mutableDescriptorType::VkBool32 end -struct VkMemoryPriorityAllocateInfoEXT +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT + +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} +end + +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT + +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkVertexInputAttributeDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + reportAddressBinding::VkBool32 end -struct VkValidationFeaturesEXT +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceDepthClipControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipControl::VkBool32 end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 end -struct VkCooperativeMatrixPropertiesNV +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 +end + +struct VkSubpassShadingPipelineCreateInfoHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + renderPass::VkRenderPass + subpass::UInt32 end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + subpassShading::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} + +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + invocationMask::VkBool32 end -struct VkPipelineCoverageReductionStateCreateInfoNV +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +const VkPipelineInfoEXT = VkPipelineInfoKHR + +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + pipelineIdentifier::NTuple{16, UInt8} end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + pipelinePropertiesIdentifier::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} + +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) +end + +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + optimal::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags - -struct VkHeadlessSurfaceCreateInfoEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} -struct VkPhysicalDeviceLineRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -struct VkPipelineRasterizationLineStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + colorWriteEnable::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat +end -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkPhysicalDeviceMultiDrawFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multiDraw::VkBool32 end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkPhysicalDeviceMultiDrawPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxMultiDrawCount::UInt32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} + +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +const VkMicromapEXT = UInt64 + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +const VkBuildMicromapFlagsEXT = VkFlags + +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV = UInt64 - -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -const VkIndirectStateFlagsNV = VkFlags +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 +end -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures - -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - subpassShading::VkBool32 +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - invocationMask::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) +end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -const VkRemoteAddressNV = Ptr{Cvoid} +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end -struct VkMemoryGetRemoteAddressInfoNV +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + disallowMerging::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 +end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingInfoLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +struct VkDirectDriverLoadingListLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} +end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 +end + +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} +end + +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} +end + +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end + +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} + +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV = UInt64 + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) +end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) +end + +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) +end + +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 + legacyDithering::VkBool32 end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 + pipelineProtectedAccess::VkBool32 end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} + +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkDescriptorSetBindingReferenceVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + amigoProfiling::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} - -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +struct VkAmigoProfilingSubmitInfoSEC + sType::VkStructureType + pNext::Ptr{Cvoid} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + multiviewPerViewViewports::VkBool32 end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 + rayTracingInvocationReorder::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + shaderCoreBuiltins::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 + pipelineLibraryGroupHandles::VkBool32 end -const VkAccelerationStructureKHR = UInt64 - @cenum VkBuildAccelerationStructureModeKHR::UInt32 begin VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 -end - @cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end const VkAccelerationStructureCreateFlagsKHR = VkFlags -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} -end - -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) -end - -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end - -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end - -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} - -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] -end - struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15146,46 +19645,128 @@ function vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache ccall((:vkCreateRayTracingPipelinesKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +function vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end + +function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirectKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +end + +function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) + ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) + ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) + ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +struct VkPhysicalDeviceRayQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayQuery::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 end -function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} -function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} -function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) - ccall((:vkCmdTraceRaysIndirectKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} -function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) - ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) - ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) - ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkPhysicalDeviceRayQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - rayQuery::VkBool32 +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end const VkWin32SurfaceCreateFlagsKHR = VkFlags @@ -15493,6 +20074,28 @@ function vkGetDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes, f ccall(fptr, VkResult, (VkDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkDeviceGroupPresentModeFlagsKHR}), device, pSurfaceInfo, pModes) end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV +const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV +const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} + +function vkAcquireWinrtDisplayNV(physicalDevice, display) + ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end + +function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end + +function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) + ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +end + +function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +end + const VULKAN_H_ = 1 const VULKAN_CORE_H_ = 1 @@ -15505,12 +20108,10 @@ const VK_NULL_HANDLE = Culonglong(0) const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15531,14 +20132,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15591,6 +20194,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15861,6 +20512,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15999,6 +20716,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -16025,10 +20748,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16209,6 +20944,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16751,6 +21492,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16777,7 +21530,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16811,6 +21564,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16825,7 +21584,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16835,6 +21594,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16871,12 +21648,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16889,12 +21684,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16913,6 +21702,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16943,6 +21738,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16955,6 +21762,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16975,12 +21788,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16999,12 +21830,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -17013,10 +21868,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -17035,6 +21994,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WIN32_H_ = 1 const VK_KHR_win32_surface = 1 @@ -17085,3 +22050,9 @@ const VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION = 4 const VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME = "VK_EXT_full_screen_exclusive" +const VK_NV_acquire_winrt_display = 1 + +const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 + +const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" + diff --git a/lib/powerpc64le-linux-gnu.jl b/lib/powerpc64le-linux-gnu.jl index aa738a8..56081ed 100644 --- a/lib/powerpc64le-linux-gnu.jl +++ b/lib/powerpc64le-linux-gnu.jl @@ -158,6 +158,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -165,6 +171,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -414,6 +421,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -425,6 +452,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -441,6 +474,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -578,6 +614,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -589,7 +631,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -655,6 +696,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -677,12 +727,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -690,21 +774,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -729,24 +823,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -852,6 +1010,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -908,7 +1067,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -918,6 +1081,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -937,9 +1105,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -987,6 +1159,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -997,17 +1171,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1280,6 +1451,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1364,12 +1536,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1529,6 +1708,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1629,8 +1839,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1665,8 +1875,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1803,10 +2016,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1817,7 +2033,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1839,6 +2054,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1873,15 +2091,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1914,6 +2143,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1951,14 +2182,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2012,6 +2245,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2024,6 +2260,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2035,6 +2272,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2053,12 +2291,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2071,6 +2316,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2119,7 +2365,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2157,15 +2411,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2192,6 +2449,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2200,6 +2459,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2208,6 +2468,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2215,6 +2480,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2223,8 +2491,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,8 +2504,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2253,6 +2525,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2280,6 +2553,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6046,6 +6323,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6885,6 +7165,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7977,6 +8258,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8342,6403 +8624,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} + +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +const VkDeferredOperationKHR_T = Cvoid + +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end + +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end + +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end + +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end + +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} +end + +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +struct VkPhysicalDevicePresentIdFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentId::VkBool32 +end + +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 + +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 + +const VkAccessFlags2KHR = VkAccessFlags2 + +const VkAccessFlagBits2KHR = VkAccessFlagBits2 + +const VkSubmitFlagBitsKHR = VkSubmitFlagBits + +const VkSubmitFlagsKHR = VkSubmitFlags + +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 +end + +struct VkCheckpointData2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 +end + +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 +end + +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end + +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 + +const VkCopyImageInfo2KHR = VkCopyImageInfo2 + +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 + +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 + +const VkBlitImageInfo2KHR = VkBlitImageInfo2 + +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo - -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT_T = Cvoid -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkDebugReportFlagsEXT = VkFlags -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} +end -struct VkImportSemaphoreFdInfoKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkSemaphoreGetFdInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end + +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -struct VkPresentRegionsKHR +struct VkPipelineRasterizationStateStreamCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkCuModuleNVX_T = Cvoid -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkCuFunctionNVX_T = Cvoid -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -const VkSubpassDependency2KHR = VkSubpassDependency2 +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} + +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkFenceImportFlagsKHR = VkFenceImportFlags - -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFenceGetFdInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + supportsTextureGatherLODBiasAMD::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +end -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryHandleTypeFlagsNV = VkFlags + +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceCounterDescriptionKHR +struct VkValidationFlagsEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -struct VkQueryPoolPerformanceCreateInfoKHR +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures + +struct VkImageViewASTCDecodeModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} -end - -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} + decodeMode::VkFormat end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkConditionalRenderingFlagsEXT = VkFlags -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkSurfaceFormat2KHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkDisplayPlaneProperties2KHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + powerState::VkDisplayPowerStateEXT end -struct VkDisplayModeProperties2KHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + deviceEvent::VkDeviceEventTypeEXT end -struct VkDisplayPlaneInfo2KHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + displayEvent::VkDisplayEventTypeEXT end -struct VkDisplayPlaneCapabilities2KHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkChromaLocationKHR = VkChromaLocation +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo - -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 -end - -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties - -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits - -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures - -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures - -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkRenderPassSampleLocationsBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -const VkDeferredOperationKHR_T = Cvoid +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkPipelineInfoKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkPipelineExecutablePropertiesKHR +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPipelineExecutableInfoKHR +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} + +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutableStatisticKHR +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkShaderModuleValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -struct VkPipelineLibraryCreateInfoKHR +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkPresentIdKHR +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -const VkAccessFlags2KHR = VkAccessFlags2 +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -const VkSubmitFlagsKHR = VkSubmitFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkDependencyInfoKHR = VkDependencyInfo +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkSubmitInfo2KHR = VkSubmitInfo2 +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +const VkAccelerationStructureNV_T = Cvoid -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) -end +const VkGeometryInstanceFlagsKHR = VkFlags -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +const VkTransformMatrixNV = VkTransformMatrixKHR -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) -end +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT_T = Cvoid +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} - -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + representativeFragmentTestEnable::VkBool32 end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + imageViewType::VkImageViewType end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkMemoryHostPointerPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + memoryTypeBits::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + minImportedHostPointerAlignment::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPipelineCompilerControlFlagsAMD = VkFlags -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end -const VkCuFunctionNVX_T = Cvoid +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end -struct VkCuModuleCreateInfoNVX +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + maxVertexAttribDivisor::UInt32 end -struct VkCuLaunchInfoNVX +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkImageViewHandleInfoNVX +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler + imageFootprint::VkBool32 end -struct VkImageViewAddressPropertiesNVX +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkTextureLODGatherFormatPropertiesAMD +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL sType::VkStructureType pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 + shaderIntegerFunctions2::VkBool32 end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkPerformanceConfigurationINTEL_T = Cvoid -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkExternalMemoryImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -struct VkExportMemoryAllocateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkValidationFlagsEXT +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + pUserData::Ptr{Cvoid} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures - -struct VkImageViewASTCDecodeModeEXT +struct VkQueryPoolPerformanceQueryCreateInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 -end - -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 + marker::UInt64 end -const VkConditionalRenderingFlagsEXT = VkFlags - -struct VkConditionalRenderingBeginInfoEXT +struct VkPerformanceStreamMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + marker::UInt32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -const VkSurfaceCounterFlagsEXT = VkFlags - -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkDisplayEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkSwapchainCounterCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} - -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) -end +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPresentTimesInfoGOOGLE +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + fragmentDensityMapAttachment::VkAttachmentReference end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + memoryPriority::VkBool32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkHdrMetadataEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -const VkDebugUtilsMessengerEXT_T = Cvoid +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + ycbcrImageArrays::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} - -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -struct VkPipelineCoverageModulationStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + presentMode::VkPresentModeKHR end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkSurfacePresentScalingCapabilitiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + swapchainMaintenance1::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheEXT_T = Cvoid - -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkSwapchainPresentScalingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkReleaseSwapchainImagesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkIndirectCommandsLayoutNV_T = Cvoid -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 -end - -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end - -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkAccelerationStructureNV_T = Cvoid - -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR - -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + texelBufferAlignment::VkBool32 end -struct VkGeometryTrianglesNV +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR end -struct VkGeometryAABBNV +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkGeometryNV +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR + deviceMemoryReport::VkBool32 end -struct VkAccelerationStructureInfoNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceRobustness2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV +struct VkPhysicalDeviceRobustness2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -struct VkAccelerationStructureMemoryRequirementsInfoNV +struct VkSamplerCustomBorderColorCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + customBorderColor::VkClearColorValue + format::VkFormat end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 -end - -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} -end - -const VkTransformMatrixNV = VkTransformMatrixKHR - -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat -end - -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} + maxCustomBorderColorSamplers::UInt32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkAccelerationStructureKHR_T = Cvoid -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + buffer::VkBuffer end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + image::VkImage end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + imageView::VkImageView end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR - -struct VkImportMemoryHostPointerInfoEXT +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + sampler::VkSampler end -struct VkMemoryHostPointerPropertiesEXT +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -const VkPipelineCompilerControlFlagsAMD = VkFlags +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderCorePropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkDeviceMemoryOverallocationCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + graphicsPipelineLibrary::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkCheckpointDataNV +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} - -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL -end - -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + ycbcr2plane444Formats::VkBool32 end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + fragmentDensityMapDeferred::VkBool32 end -struct VkPerformanceOverrideInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFixedRateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} + +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFaultFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures - -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures - -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceDrmPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + reportAddressBinding::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkMemoryPriorityAllocateInfoEXT +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + depthClipControl::VkBool32 end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +struct VkPipelineViewportDepthClipControlCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + negativeOneToOne::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + renderPass::VkRenderPass + subpass::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + invocationMask::VkBool32 end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags - -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + pipelineIdentifier::NTuple{16, UInt8} end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + pipelinePropertiesIdentifier::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + optimal::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 -end - -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +end -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + colorWriteEnable::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + multiDraw::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +const VkMicromapEXT_T = Cvoid -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +const VkMicromapEXT = Ptr{VkMicromapEXT_T} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) -end +const VkMicromapCreateFlagsEXT = VkFlags -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress +end -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures - -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) + disallowMerging::VkBool32 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -const VkRemoteAddressNV = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -struct VkMemoryGetRemoteAddressInfoNV +struct VkDirectDriverLoadingInfoLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} - -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV_T = Cvoid + +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15242,6 +19749,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15376,12 +19965,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15402,14 +19989,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15462,6 +20051,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15732,6 +20369,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15870,6 +20573,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15896,10 +20605,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16080,6 +20801,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16622,6 +21349,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16648,7 +21387,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16682,6 +21421,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16696,7 +21441,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16706,6 +21451,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16742,12 +21505,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16760,12 +21541,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16784,6 +21559,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16814,6 +21595,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16826,6 +21619,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16846,12 +21645,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16870,12 +21687,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16884,10 +21725,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16906,6 +21851,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/x86_64-apple-darwin14.jl b/lib/x86_64-apple-darwin14.jl index d7b8cb5..4676c88 100644 --- a/lib/x86_64-apple-darwin14.jl +++ b/lib/x86_64-apple-darwin14.jl @@ -140,6 +140,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -147,6 +153,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -396,6 +403,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -407,6 +434,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -423,6 +456,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -560,6 +596,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -571,7 +613,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -637,6 +678,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -659,12 +709,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -672,21 +756,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -711,24 +805,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -834,6 +992,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -890,7 +1049,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -900,6 +1063,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -919,9 +1087,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -969,6 +1141,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -979,17 +1153,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1262,6 +1433,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1346,12 +1518,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1511,6 +1690,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1611,8 +1821,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1647,8 +1857,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1785,10 +1998,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1799,7 +2015,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1821,6 +2036,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1855,15 +2073,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1896,6 +2125,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1933,14 +2164,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1994,6 +2227,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2006,6 +2242,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2017,6 +2254,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2035,12 +2273,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2053,6 +2298,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2101,7 +2347,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2139,15 +2393,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2174,6 +2431,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2182,6 +2441,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2190,6 +2450,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2197,6 +2462,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2205,8 +2473,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2217,8 +2486,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,6 +2507,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2262,6 +2535,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6028,6 +6305,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6867,6 +7147,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7959,6 +8240,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8324,6403 +8606,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo - -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} - -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits - -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags - -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits - -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo - -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end - -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end - -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags - -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits - -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo - -struct VkImportSemaphoreFdInfoKHR +struct VkVideoDecodeH264ProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR end -struct VkSemaphoreGetFdInfoKHR +struct VkVideoDecodeH264CapabilitiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} - -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} end -struct VkPhysicalDevicePushDescriptorPropertiesKHR +struct VkVideoDecodeH264DpbSlotInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} - -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) -end +const VkRenderingFlagsKHR = VkRenderingFlags -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) -end +const VkRenderingFlagBitsKHR = VkRenderingFlagBits -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) -end +const VkRenderingInfoKHR = VkRenderingInfo -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) -end +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout end -struct VkPresentRegionsKHR +struct VkAttachmentSampleCountInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate - -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType - -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags - -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry - -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +const VkFormatProperties2KHR = VkFormatProperties2 -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkImageFormatProperties2KHR = VkImageFormatProperties2 -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 -const VkSubpassDependency2KHR = VkSubpassDependency2 +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 -const VkSubpassEndInfoKHR = VkSubpassEndInfo +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo -const VkFenceImportFlagsKHR = VkFenceImportFlags +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint -end +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo -struct VkFenceGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) end -struct VkPerformanceCounterKHR +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint end -struct VkPerformanceCounterDescriptionKHR +struct VkMemoryFdPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + memoryTypeBits::UInt32 end -struct VkQueryPoolPerformanceCreateInfoKHR +struct VkMemoryGetFdInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) end -struct VkAcquireProfilingLockInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) end -struct VkPerformanceQuerySubmitInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - counterPassIndex::UInt32 -end +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) end -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) -end +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) -end +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior - -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin - -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) end -struct VkSurfaceFormat2KHR +struct VkPhysicalDevicePushDescriptorPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + maxPushDescriptors::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR -end +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures -struct VkDisplayPlaneProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 end -struct VkDisplayModeProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} end -struct VkDisplayPlaneInfo2KHR +struct VkPresentRegionsKHR sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} end -struct VkDisplayPlaneCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR -end +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 -const VkMemoryRequirements2KHR = VkMemoryRequirements2 +const VkAttachmentDescription2KHR = VkAttachmentDescription2 -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 +const VkAttachmentReference2KHR = VkAttachmentReference2 -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} +const VkSubpassDescription2KHR = VkSubpassDescription2 -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} +const VkSubpassDependency2KHR = VkSubpassDependency2 -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +const VkSubpassEndInfoKHR = VkSubpassEndInfo -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo - -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion - -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion - -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange - -const VkChromaLocationKHR = VkChromaLocation - -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkExternalFencePropertiesKHR = VkExternalFenceProperties -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) -end +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkAcquireProfilingLockFlagsKHR = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkPhysicalDevicePerformanceQueryFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkPerformanceCounterKHR sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkPerformanceCounterDescriptionKHR sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkQueryPoolPerformanceCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType - -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits - -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags - -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +const VkPointClippingBehaviorKHR = VkPointClippingBehavior -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 -end +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D -end +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} -end +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR sType::VkStructureType pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 + surface::VkSurfaceKHR end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR +struct VkSurfaceCapabilities2KHR sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 + surfaceCapabilities::VkSurfaceCapabilitiesKHR end -struct VkPhysicalDeviceFragmentShadingRateKHR +struct VkSurfaceFormat2KHR sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + surfaceFormat::VkSurfaceFormatKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) end -struct VkSurfaceProtectedCapabilitiesKHR +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR sType::VkStructureType pNext::Ptr{Cvoid} - supportsProtected::VkBool32 + displayProperties::VkDisplayPropertiesKHR end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR +struct VkDisplayPlaneProperties2KHR sType::VkStructureType pNext::Ptr{Cvoid} - presentWait::VkBool32 + displayPlaneProperties::VkDisplayPlanePropertiesKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures - -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures - -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo - -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo - -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) end -const VkDeferredOperationKHR_T = Cvoid +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) -end +const VkMemoryRequirements2KHR = VkMemoryRequirements2 -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) -end +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) -end +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 -end +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo -struct VkPipelineInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline -end +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion -struct VkPipelineExecutablePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 -end +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion -struct VkPipelineExecutableInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 -end +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) end -struct VkPipelineExecutableStatisticKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) end -struct VkPipelineExecutableInternalRepresentationKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures -struct VkPipelineLibraryCreateInfoKHR +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} -end - -struct VkPhysicalDevicePresentIdFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentId::VkBool32 -end - -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 - -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 - -const VkAccessFlags2KHR = VkAccessFlags2 - -const VkAccessFlagBits2KHR = VkAccessFlagBits2 - -const VkSubmitFlagBitsKHR = VkSubmitFlagBits - -const VkSubmitFlagsKHR = VkSubmitFlags - -const VkMemoryBarrier2KHR = VkMemoryBarrier2 - -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 - -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 - -const VkDependencyInfoKHR = VkDependencyInfo - -const VkSubmitInfo2KHR = VkSubmitInfo2 - -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo - -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo - -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features - -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} - -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) end -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties - -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements - -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} - -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -const VkDebugReportCallbackEXT_T = Cvoid - -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end -struct VkDebugReportCallbackCreateInfoEXT +struct VkVideoDecodeH265ProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) + stdProfileIdc::StdVideoH265ProfileIdc end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 end -struct VkPipelineRasterizationStateRasterizationOrderAMD +struct VkDeviceQueueGlobalPriorityCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD + globalPriority::VkQueueGlobalPriorityKHR end -struct VkDebugMarkerObjectNameInfoEXT +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} + globalPriorityQuery::VkBool32 end -struct VkDebugMarkerObjectTagInfoEXT +struct VkQueueFamilyGlobalPriorityPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} -end +const VkDriverIdKHR = VkDriverId -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +const VkConformanceVersionKHR = VkConformanceVersion -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) -end +const VkResolveModeFlagsKHR = VkResolveModeFlags -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) -end +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) -end +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) -end +const VkSemaphoreTypeKHR = VkSemaphoreType -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) -end +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) -end +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) end -struct VkDedicatedAllocationImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) end -struct VkDedicatedAllocationBufferCreateInfoNV +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkPipelineFragmentShadingRateStateCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceFragmentShadingRateKHR sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 end -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} - -const VkCuFunctionNVX_T = Cvoid - -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures -struct VkCuModuleCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} -end +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures -struct VkCuFunctionCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} -end +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo -struct VkCuLaunchInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} -end +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkDeferredOperationKHR_T = Cvoid -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) -end +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler -end +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} -struct VkImageViewAddressPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize -end - -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} - -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -struct VkTextureLODGatherFormatPropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) end -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 end -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +struct VkPipelineExecutableInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 + pipeline::VkPipeline + executableIndex::UInt32 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] end -struct VkExternalMemoryImageCreateInfoNV +struct VkPipelineExecutableStatisticKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR end -struct VkExportMemoryAllocateInfoNV +struct VkPipelineExecutableInternalRepresentationKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -struct VkValidationFlagsEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end -struct VkImageViewASTCDecodeModeEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - decodeMode::VkFormat +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -const VkConditionalRenderingFlagsEXT = VkFlags +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures -struct VkConditionalRenderingBeginInfoEXT +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPresentIdKHR sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPhysicalDevicePresentIdFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + presentId::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +const VkAccessFlags2KHR = VkAccessFlags2 -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkSubmitFlagsKHR = VkSubmitFlags -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkPipelineViewportWScalingStateCreateInfoNV +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -const VkSurfaceCounterFlagsEXT = VkFlags +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) end -struct VkDisplayPowerInfoEXT +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT + fragmentShaderBarycentric::VkBool32 end -struct VkDeviceEventInfoEXT +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 end -struct VkDisplayEventInfoEXT +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + shaderSubgroupUniformControlFlow::VkBool32 end -struct VkSwapchainCounterCreateInfoEXT +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) -end +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -struct VkPresentTimesInfoGOOGLE +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 + +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features + +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties + +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements + +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} + +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkPipelineViewportSwizzleStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} +const VkDebugReportCallbackEXT_T = Cvoid + +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} + +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +const VkDebugReportFlagsEXT = VkFlags -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkPipelineDiscardRectangleStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} + +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end + +struct VkPipelineRasterizationStateRasterizationOrderAMD sType::VkStructureType pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 + rasterizationOrder::VkRasterizationOrderAMD end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +struct VkDebugMarkerObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkXYColorEXT - x::Cfloat - y::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -const VkDebugUtilsMessengerEXT_T = Cvoid +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -struct VkDebugUtilsLabelEXT +struct VkDedicatedAllocationImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + dedicatedAllocation::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkDedicatedAllocationBufferCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + dedicatedAllocation::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkDedicatedAllocationMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + image::VkImage + buffer::VkBuffer end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +struct VkPipelineRasterizationStateStreamCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkCuModuleNVX_T = Cvoid -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkCuFunctionNVX_T = Cvoid -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} end -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +end -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +end -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end + +struct VkImageViewHandleInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -struct VkMultisamplePropertiesEXT +struct VkImageViewAddressPropertiesNVX sType::VkStructureType pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} + supportsTextureGatherLODBiasAMD::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -struct VkDrmFormatModifierPropertiesListEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +struct VkPhysicalDeviceCornerSampledImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + cornerSampledImage::VkBool32 end -struct VkImageDrmFormatModifierPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 -end - -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 -end - -struct VkDrmFormatModifierPropertiesList2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) -end +const VkExternalMemoryFeatureFlagsNV = VkFlags -const VkValidationCacheEXT_T = Cvoid +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +end -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkValidationCacheCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkValidationCacheCreateInfoEXT +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} - -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits - -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags - -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo - -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures - -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties - -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo - -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport - -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPipelineRobustnessCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +const VkConditionalRenderingFlagsEXT = VkFlags + +struct VkConditionalRenderingBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 + conditionalRenderingEnable::VkBool32 end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} + +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} + +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkAccelerationStructureNV_T = Cvoid +const VkSurfaceCounterFlagsEXT = VkFlags -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSurfaceCapabilities2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -const VkGeometryTypeNV = VkGeometryTypeKHR +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +end -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR +struct VkDisplayPowerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + powerState::VkDisplayPowerStateEXT +end -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +struct VkDeviceEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceEvent::VkDeviceEventTypeEXT end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkDisplayEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayEvent::VkDisplayEventTypeEXT end -const VkGeometryFlagsKHR = VkFlags +struct VkSwapchainCounterCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCounters::VkSurfaceCounterFlagsEXT +end -const VkGeometryFlagsNV = VkGeometryFlagsKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -const VkGeometryInstanceFlagsKHR = VkFlags +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +end -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +end -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +end -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkBuildAccelerationStructureFlagsKHR = VkFlags +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +end -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkRayTracingShaderGroupCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -struct VkRayTracingPipelineCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -struct VkGeometryTrianglesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -struct VkGeometryAABBNV +struct VkPresentTimesInfoGOOGLE sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} + +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) end -struct VkGeometryNV - sType::VkStructureType - pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) end -struct VkAccelerationStructureInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + perViewPositionAllComponents::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV - sType::VkStructureType - pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 end -struct VkAccelerationStructureMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags + +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPipelineViewportSwizzleStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 end -const VkTransformMatrixNV = VkTransformMatrixKHR +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) -end +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) -end +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) -end +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkDebugUtilsLabelEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkDebugUtilsObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkDebugUtilsMessengerCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkDebugUtilsMessengerCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} + +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - imageViewType::VkImageViewType +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkFilterCubicImageViewImageFormatPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +end -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -struct VkImportMemoryHostPointerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -struct VkMemoryHostPointerPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +const VkSamplerReductionModeEXT = VkSamplerReductionMode -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 -end +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -const VkPipelineCompilerControlFlagsAMD = VkFlags +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat +end -struct VkPipelineCompilerControlCreateInfoAMD +struct VkSampleLocationsInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -struct VkCalibratedTimestampInfoEXT +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end + +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} + +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -struct VkPhysicalDeviceShaderCorePropertiesAMD +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end + +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 + advancedBlendCoherentOperations::VkBool32 end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +struct VkDrmFormatModifierPropertiesListEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} +end -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkImageDrmFormatModifierPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + drmFormatModifier::UInt64 end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end + +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} +end + +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +end + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +end + +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +end + +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +end + +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +end + +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +end + +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end + +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end + +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +end + +struct VkPhysicalDeviceShadingRateImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 +end + +struct VkPhysicalDeviceShadingRateImagePropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 +end + +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end + +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end + +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} + +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end + +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end + +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end + +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end + +const VkAccelerationStructureNV_T = Cvoid + +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} + +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +end + +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +end + +const VkGeometryTypeNV = VkGeometryTypeKHR + +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end + +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR + +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end + +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR + +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkGeometryFlagsKHR = VkFlags + +const VkGeometryFlagsNV = VkGeometryFlagsKHR + +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR + +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkGeometryInstanceFlagsKHR = VkFlags + +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR + +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR + +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkBuildAccelerationStructureFlagsKHR = VkFlags + +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR + +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR + +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 +end + +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 +end + +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize +end + +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize +end + +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV +end + +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR +end + +struct VkAccelerationStructureInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} +end + +struct VkAccelerationStructureCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV +end + +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} +end + +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} +end + +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV +end + +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 +end + +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} +end + +const VkTransformMatrixNV = VkTransformMatrixKHR + +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat +end + +const VkAabbPositionsNV = VkAabbPositionsKHR + +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +end + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +end + +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +end + +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +end + +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end + +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end + +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end + +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end + +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end + +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end + +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +end + +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +end + +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +end + +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +end + +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +end + +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 +end + +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTestEnable::VkBool32 +end + +struct VkPhysicalDeviceImageViewImageFormatInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageViewType::VkImageViewType +end + +struct VkFilterCubicImageViewImageFormatPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 +end + +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR + +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} +end + +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} + +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end + +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +end + +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +end + +const VkPipelineCompilerControlFlagsAMD = VkFlags + +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD +end + +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +end + +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +end + +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +end + +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end + +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end + +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end + +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end + +struct VkDeviceMemoryOverallocationCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD +end + +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxVertexAttribDivisor::UInt32 +end + +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 +end + +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits + +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags + +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo + +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback + +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 +end + +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +end + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +end + +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + imageFootprint::VkBool32 +end + +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} +end + +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +end + +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags +end + +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} + +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end + +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +end + +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 +end + +const VkPerformanceConfigurationINTEL_T = Cvoid + +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} + +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +end + +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} + +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] +end + +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL +end + +struct VkInitializePerformanceApiInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + pUserData::Ptr{Cvoid} +end + +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL +end + +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt64 +end + +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 +end + +struct VkPerformanceOverrideInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 +end + +struct VkPerformanceConfigurationAcquireInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkPerformanceConfigurationTypeINTEL +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +end + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +end + +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end + +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end + +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +end + +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end + +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end + +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +end + +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end + +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 +end + +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 +end + +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} + +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 +end + +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 +end + +struct VkRenderPassFragmentDensityMapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMapAttachment::VkAttachmentReference +end + +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures + +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures + +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties + +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +end + +const VkShaderCorePropertiesFlagsAMD = VkFlags + +struct VkPhysicalDeviceShaderCoreProperties2AMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 +end + +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 +end + +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end + +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} +end + +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryPriority::VkBool32 +end + +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat +end + +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end + +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 +end + +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress +end + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} + +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end + +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +end + +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} +end + +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 +end + +struct VkCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV +end + +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 +end + +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrixSupportedStages::VkShaderStageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +end + +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end + +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags + +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end + +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV +end + +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end + +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end + +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 +end + +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcrImageArrays::VkBool32 +end + +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceProvokingVertexPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 +end + +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT +end + +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 +end + +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 +end + +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +end + +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 +end + +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures + +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end + +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 +end + +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end + +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +end + +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end + +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +end + +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +end + +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +end + +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end + +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end + +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end + +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end + +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +end + +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end + +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +end + +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end + +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end + +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end + +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end + +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end + +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end + +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end + +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end + +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 +end + +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR +end + +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D +end + +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end + +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 +end + +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} +end + +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end + +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end + +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT +end + +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) +end + +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) +end + +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + +const VkIndirectCommandsLayoutNV_T = Cvoid + +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} + +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end + +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end + +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags + +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end + +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end + +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end + +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end + +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end + +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end + +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 +end + +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 +end + +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize +end + +struct VkIndirectCommandsLayoutTokenNV + sType::VkStructureType + pNext::Ptr{Cvoid} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} +end + +struct VkIndirectCommandsLayoutCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} +end + +struct VkGeneratedCommandsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize +end + +struct VkGeneratedCommandsMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} + +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +end + +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +end + +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +end + +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +end + +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +end + +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +end + +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +end + +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +end + +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +end + +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +end + +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 +end + +struct VkCommandBufferInheritanceViewportScissorInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} +end + +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + texelBufferAlignment::VkBool32 +end + +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR +end + +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D +end + +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end + +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceMemoryReport::VkBool32 +end + +struct VkDeviceMemoryReportCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +end + +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 +end + +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize +end + +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat +end + +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 +end + +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 +end + +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 +end + +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 +end + +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 +end + +const VkPrivateDataSlotEXT = VkPrivateDataSlot + +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags + +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures + +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo + +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +end + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +end + +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +end + +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +end + +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end + +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +end + +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +end + +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +end + +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end + +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 +end + +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV +end + +const VkAccelerationStructureKHR_T = Cvoid + +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} + +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize +end + +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t +end + +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 +end + +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat +end + +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags +end + +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] +end + +struct VkDescriptorGetInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkDescriptorType + data::VkDescriptorDataEXT +end + +struct VkBufferCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer +end + +struct VkImageCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage +end + +struct VkImageViewCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView +end + +struct VkSamplerCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampler::VkSampler +end + +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + opaqueCaptureDescriptorData::Ptr{Cvoid} +end + +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV +end + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) +end + +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end + +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end + +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end + +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end + +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) +end + +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) +end + +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + graphicsPipelineLibrary::VkBool32 +end + +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 +end + +struct VkGraphicsPipelineLibraryCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkGraphicsPipelineLibraryFlagsEXT +end + +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 +end + +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end + +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end + +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +end + +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +end + +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +end + +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] +end + +struct VkAccelerationStructureGeometryMotionTrianglesDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkDeviceOrHostAddressConstKHR +end + +struct VkAccelerationStructureMotionInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV +end + +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end + +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) +end + +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end + +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} +end + +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageFootprint::VkBool32 + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} + ycbcr2plane444Formats::VkBool32 end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + fragmentDensityMapDeferred::VkBool32 end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkCheckpointDataNV +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) -end +const VkImageCompressionFlagsEXT = VkFlags -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) -end +const VkImageCompressionFixedRateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + imageCompressionControl::VkBool32 end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} - -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) - return getfield(x, f) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} - -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val - end - ref[] +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkInitializePerformanceApiInfoINTEL +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkDeviceFaultCountsEXT sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - marker::UInt64 +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -struct VkPerformanceStreamMarkerInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - marker::UInt32 +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -struct VkPerformanceOverrideInfoINTEL +struct VkDeviceFaultInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -struct VkPerformanceConfigurationAcquireInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) -end +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mutableDescriptorType::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) -end +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +struct VkMutableDescriptorTypeCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexInputDynamicState::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkVertexInputBindingDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} + +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + reportAddressBinding::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + depthClipControl::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} - -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + renderPass::VkRenderPass + subpass::UInt32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + subpassShading::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + invocationMask::VkBool32 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + externalMemoryRDMA::VkBool32 end -struct VkMemoryPriorityAllocateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - priority::Cfloat +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} + +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +end + +const VkPipelineInfoEXT = VkPipelineInfoKHR + +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + pipelineIdentifier::NTuple{16, UInt8} end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + pipelinePropertiesIdentifier::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) +end -struct VkBufferDeviceAddressCreateInfoEXT +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) +end + +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + multisampledRenderToSingleSampled::VkBool32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} +struct VkSubpassResolvePerformanceQueryEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + optimal::VkBool32 +end -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkMultisampledRenderToSingleSampledInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -const VkToolPurposeFlagsEXT = VkToolPurposeFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +end + +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkValidationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + colorWriteEnable::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR + +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + minLod::VkBool32 end -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkImageViewMinLodCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + minLod::Cfloat end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + multiDraw::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +struct VkPhysicalDeviceMultiDrawPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxMultiDrawCount::UInt32 end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} + +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +const VkMicromapEXT_T = Cvoid -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +const VkMicromapEXT = Ptr{VkMicromapEXT_T} + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkPipelineRasterizationLineStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) +end -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkMicromapBuildInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkMicromapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} +struct VkCopyMemoryToMicromapInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} +struct VkCopyMicromapInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +struct VkMicromapBuildSizesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +struct VkAccelerationStructureTrianglesOpacityMicromapEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) -end +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} - -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags - -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -struct VkGraphicsShaderGroupCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end - -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkGeneratedCommandsMemoryRequirementsInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkSamplerBorderColorComponentMappingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + components::VkComponentMapping + srgb::VkBool32 end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pageableDeviceLocalMemory::VkBool32 end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetHostMapping::VkBool32 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +struct VkDescriptorSetBindingReferenceVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +struct VkDescriptorSetLayoutHostMappingInfoVALVE + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + nonSeamlessCubeMap::VkBool32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + fragmentDensityMapOffset::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize end -const VkDeviceMemoryReportFlagsEXT = VkFlags +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + indirectCopy::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + supportedQueues::VkQueueFlags end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -struct VkDeviceDeviceMemoryReportCreateInfoEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} + +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) +end + +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) +end + +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) +end + +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) +end + +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV +end + +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + memoryDecompression::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + linearColorAttachment::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + imageCompressionControlSwapchain::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkImageViewSampleWeightCreateInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceImageProcessingFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -const VkPrivateDataSlotEXT = VkPrivateDataSlot +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 +end -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + dynamicPrimitiveTopologyUnrestricted::VkBool32 +end -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp +end -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} -struct VkDeviceDiagnosticsConfigCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) +end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - depthClipControl::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPipelineViewportDepthClipControlCreateInfoEXT +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 + disallowMerging::VkBool32 end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -struct VkSubpassShadingPipelineCreateInfoHUAWEI +struct VkRenderPassCreationFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - subpassShading::VkBool32 +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkDirectDriverLoadingInfoLUNARG + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -const VkRemoteAddressNV = Ptr{Cvoid} - -struct VkMemoryGetRemoteAddressInfoNV +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkShaderModuleIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + identifierSize::UInt32 + identifier::NTuple{32, UInt8} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) -end +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +const VkOpticalFlowSessionNV_T = Cvoid -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) -end +const VkOpticalFlowGridSizeFlagsNV = VkFlags -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) -end +const VkOpticalFlowUsageFlagsNV = VkFlags -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) -end +const VkOpticalFlowSessionCreateFlagsNV = VkFlags -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) -end +const VkOpticalFlowExecuteFlagsNV = VkFlags -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) +end + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -struct VkPhysicalDeviceMultiDrawPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + legacyDithering::VkBool32 end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 + pipelineProtectedAccess::VkBool32 end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 + tileProperties::VkBool32 end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT +struct VkTilePropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} + +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkDescriptorSetBindingReferenceVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + amigoProfiling::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} - -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +struct VkAmigoProfilingSubmitInfoSEC + sType::VkStructureType + pNext::Ptr{Cvoid} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + multiviewPerViewViewports::VkBool32 end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 + rayTracingInvocationReorder::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + shaderCoreBuiltins::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 + pipelineLibraryGroupHandles::VkBool32 end -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - @cenum VkBuildAccelerationStructureModeKHR::UInt32 begin VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 -end - @cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end const VkAccelerationStructureCreateFlagsKHR = VkFlags -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} -end - -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) -end - -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end - -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end - -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} - -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] -end - struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15198,72 +19705,272 @@ function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMi ccall((:vkCmdTraceRaysIndirectKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) end -function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) + ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) + ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) + ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +struct VkPhysicalDeviceRayQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayQuery::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkMacOSSurfaceCreateFlagsMVK = VkFlags + +struct VkMacOSSurfaceCreateInfoMVK + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkMacOSSurfaceCreateFlagsMVK + pView::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMacOSSurfaceMVK ) ( VkInstance instance , const VkMacOSSurfaceCreateInfoMVK * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateMacOSSurfaceMVK = Ptr{Cvoid} + +function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateMacOSSurfaceMVK, libvulkan), VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +const CAMetalLayer = Cvoid + +const VkMetalSurfaceCreateFlagsEXT = VkFlags + +struct VkMetalSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkMetalSurfaceCreateFlagsEXT + pLayer::Ptr{CAMetalLayer} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMetalSurfaceEXT ) ( VkInstance instance , const VkMetalSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateMetalSurfaceEXT = Ptr{Cvoid} + +function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateMetalSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +const MTLDevice_id = Ptr{Cvoid} + +const MTLCommandQueue_id = Ptr{Cvoid} + +const MTLBuffer_id = Ptr{Cvoid} + +const MTLTexture_id = Ptr{Cvoid} + +const __IOSurface = Cvoid + +const IOSurfaceRef = Ptr{__IOSurface} + +const MTLSharedEvent_id = Ptr{Cvoid} + +@cenum VkExportMetalObjectTypeFlagBitsEXT::UInt32 begin + VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 1 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 2 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 4 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 8 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 16 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 32 + VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkExportMetalObjectTypeFlagsEXT = VkFlags + +struct VkExportMetalObjectCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + exportObjectType::VkExportMetalObjectTypeFlagBitsEXT +end + +struct VkExportMetalObjectsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) - ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +struct VkExportMetalDeviceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mtlDevice::MTLDevice_id end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) - ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +struct VkExportMetalCommandQueueInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + queue::VkQueue + mtlCommandQueue::MTLCommandQueue_id end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) - ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +struct VkExportMetalBufferInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + mtlBuffer::MTLBuffer_id end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +struct VkImportMetalBufferInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + mtlBuffer::MTLBuffer_id end -struct VkPhysicalDeviceRayQueryFeaturesKHR +struct VkExportMetalTextureInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - rayQuery::VkBool32 + image::VkImage + imageView::VkImageView + bufferView::VkBufferView + plane::VkImageAspectFlagBits + mtlTexture::MTLTexture_id end -const VkMacOSSurfaceCreateFlagsMVK = VkFlags - -struct VkMacOSSurfaceCreateInfoMVK +struct VkImportMetalTextureInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkMacOSSurfaceCreateFlagsMVK - pView::Ptr{Cvoid} + plane::VkImageAspectFlagBits + mtlTexture::MTLTexture_id end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMacOSSurfaceMVK ) ( VkInstance instance , const VkMacOSSurfaceCreateInfoMVK * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateMacOSSurfaceMVK = Ptr{Cvoid} - -function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateMacOSSurfaceMVK, libvulkan), VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkExportMetalIOSurfaceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + ioSurface::IOSurfaceRef end -function vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkMacOSSurfaceCreateInfoMVK}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +struct VkImportMetalIOSurfaceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ioSurface::IOSurfaceRef end -const CAMetalLayer = Cvoid - -const VkMetalSurfaceCreateFlagsEXT = VkFlags +struct VkExportMetalSharedEventInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + event::VkEvent + mtlSharedEvent::MTLSharedEvent_id +end -struct VkMetalSurfaceCreateInfoEXT +struct VkImportMetalSharedEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkMetalSurfaceCreateFlagsEXT - pLayer::Ptr{CAMetalLayer} + mtlSharedEvent::MTLSharedEvent_id end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMetalSurfaceEXT ) ( VkInstance instance , const VkMetalSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateMetalSurfaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkExportMetalObjectsEXT ) ( VkDevice device , VkExportMetalObjectsInfoEXT * pMetalObjectsInfo ) +const PFN_vkExportMetalObjectsEXT = Ptr{Cvoid} -function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateMetalSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkExportMetalObjectsEXT(device, pMetalObjectsInfo) + ccall((:vkExportMetalObjectsEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkExportMetalObjectsInfoEXT}), device, pMetalObjectsInfo) end -function vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkMetalSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkExportMetalObjectsEXT(device, pMetalObjectsInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkExportMetalObjectsInfoEXT}), device, pMetalObjectsInfo) end const VULKAN_H_ = 1 @@ -15278,12 +19985,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15304,14 +20009,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15364,6 +20071,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15634,6 +20389,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15772,6 +20593,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15798,10 +20625,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -15982,6 +20821,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16524,6 +21369,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16550,7 +21407,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16584,6 +21441,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16598,7 +21461,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16608,6 +21471,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16644,12 +21525,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16662,12 +21561,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16686,6 +21579,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16716,6 +21615,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16728,6 +21639,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16748,12 +21665,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16772,12 +21707,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16786,10 +21745,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16808,6 +21871,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_MACOS_H_ = 1 const VK_MVK_macos_surface = 1 @@ -16824,3 +21893,9 @@ const VK_EXT_METAL_SURFACE_SPEC_VERSION = 1 const VK_EXT_METAL_SURFACE_EXTENSION_NAME = "VK_EXT_metal_surface" +const VK_EXT_metal_objects = 1 + +const VK_EXT_METAL_OBJECTS_SPEC_VERSION = 1 + +const VK_EXT_METAL_OBJECTS_EXTENSION_NAME = "VK_EXT_metal_objects" + diff --git a/lib/x86_64-linux-gnu.jl b/lib/x86_64-linux-gnu.jl index aa738a8..56081ed 100644 --- a/lib/x86_64-linux-gnu.jl +++ b/lib/x86_64-linux-gnu.jl @@ -158,6 +158,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -165,6 +171,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -414,6 +421,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -425,6 +452,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -441,6 +474,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -578,6 +614,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -589,7 +631,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -655,6 +696,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -677,12 +727,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -690,21 +774,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -729,24 +823,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -852,6 +1010,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -908,7 +1067,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -918,6 +1081,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -937,9 +1105,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -987,6 +1159,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -997,17 +1171,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1280,6 +1451,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1364,12 +1536,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1529,6 +1708,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1629,8 +1839,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1665,8 +1875,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1803,10 +2016,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1817,7 +2033,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1839,6 +2054,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1873,15 +2091,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1914,6 +2143,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1951,14 +2182,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2012,6 +2245,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2024,6 +2260,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2035,6 +2272,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2053,12 +2291,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2071,6 +2316,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2119,7 +2365,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2157,15 +2411,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2192,6 +2449,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2200,6 +2459,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2208,6 +2468,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2215,6 +2480,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2223,8 +2491,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,8 +2504,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2253,6 +2525,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2280,6 +2553,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6046,6 +6323,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6885,6 +7165,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7977,6 +8258,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8342,6403 +8624,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} + +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +const VkDeferredOperationKHR_T = Cvoid + +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end + +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end + +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end + +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end + +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} +end + +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +struct VkPhysicalDevicePresentIdFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentId::VkBool32 +end + +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 + +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 + +const VkAccessFlags2KHR = VkAccessFlags2 + +const VkAccessFlagBits2KHR = VkAccessFlagBits2 + +const VkSubmitFlagBitsKHR = VkSubmitFlagBits + +const VkSubmitFlagsKHR = VkSubmitFlags + +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 +end + +struct VkCheckpointData2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 +end + +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 +end + +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end + +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 + +const VkCopyImageInfo2KHR = VkCopyImageInfo2 + +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 + +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 + +const VkBlitImageInfo2KHR = VkBlitImageInfo2 + +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo - -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT_T = Cvoid -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkDebugReportFlagsEXT = VkFlags -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} +end -struct VkImportSemaphoreFdInfoKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkSemaphoreGetFdInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end + +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -struct VkPresentRegionsKHR +struct VkPipelineRasterizationStateStreamCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkCuModuleNVX_T = Cvoid -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkCuFunctionNVX_T = Cvoid -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -const VkSubpassDependency2KHR = VkSubpassDependency2 +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} + +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkFenceImportFlagsKHR = VkFenceImportFlags - -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFenceGetFdInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + supportsTextureGatherLODBiasAMD::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +end -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryHandleTypeFlagsNV = VkFlags + +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceCounterDescriptionKHR +struct VkValidationFlagsEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -struct VkQueryPoolPerformanceCreateInfoKHR +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures + +struct VkImageViewASTCDecodeModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} -end - -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} + decodeMode::VkFormat end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkConditionalRenderingFlagsEXT = VkFlags -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkSurfaceFormat2KHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkDisplayPlaneProperties2KHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + powerState::VkDisplayPowerStateEXT end -struct VkDisplayModeProperties2KHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + deviceEvent::VkDeviceEventTypeEXT end -struct VkDisplayPlaneInfo2KHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + displayEvent::VkDisplayEventTypeEXT end -struct VkDisplayPlaneCapabilities2KHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkChromaLocationKHR = VkChromaLocation +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo - -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 -end - -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties - -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits - -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures - -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures - -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkRenderPassSampleLocationsBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -const VkDeferredOperationKHR_T = Cvoid +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkPipelineInfoKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkPipelineExecutablePropertiesKHR +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPipelineExecutableInfoKHR +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} + +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutableStatisticKHR +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkShaderModuleValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -struct VkPipelineLibraryCreateInfoKHR +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkPresentIdKHR +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -const VkAccessFlags2KHR = VkAccessFlags2 +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -const VkSubmitFlagsKHR = VkSubmitFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkDependencyInfoKHR = VkDependencyInfo +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkSubmitInfo2KHR = VkSubmitInfo2 +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +const VkAccelerationStructureNV_T = Cvoid -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) -end +const VkGeometryInstanceFlagsKHR = VkFlags -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +const VkTransformMatrixNV = VkTransformMatrixKHR -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) -end +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT_T = Cvoid +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} - -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + representativeFragmentTestEnable::VkBool32 end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + imageViewType::VkImageViewType end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkMemoryHostPointerPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + memoryTypeBits::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + minImportedHostPointerAlignment::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPipelineCompilerControlFlagsAMD = VkFlags -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end -const VkCuFunctionNVX_T = Cvoid +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end -struct VkCuModuleCreateInfoNVX +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + maxVertexAttribDivisor::UInt32 end -struct VkCuLaunchInfoNVX +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkImageViewHandleInfoNVX +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler + imageFootprint::VkBool32 end -struct VkImageViewAddressPropertiesNVX +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkTextureLODGatherFormatPropertiesAMD +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL sType::VkStructureType pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 + shaderIntegerFunctions2::VkBool32 end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkPerformanceConfigurationINTEL_T = Cvoid -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkExternalMemoryImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -struct VkExportMemoryAllocateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkValidationFlagsEXT +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + pUserData::Ptr{Cvoid} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures - -struct VkImageViewASTCDecodeModeEXT +struct VkQueryPoolPerformanceQueryCreateInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 -end - -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 + marker::UInt64 end -const VkConditionalRenderingFlagsEXT = VkFlags - -struct VkConditionalRenderingBeginInfoEXT +struct VkPerformanceStreamMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + marker::UInt32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -const VkSurfaceCounterFlagsEXT = VkFlags - -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkDisplayEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkSwapchainCounterCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} - -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) -end +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPresentTimesInfoGOOGLE +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + fragmentDensityMapAttachment::VkAttachmentReference end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + memoryPriority::VkBool32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkHdrMetadataEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -const VkDebugUtilsMessengerEXT_T = Cvoid +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + ycbcrImageArrays::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} - -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -struct VkPipelineCoverageModulationStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + presentMode::VkPresentModeKHR end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkSurfacePresentScalingCapabilitiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + swapchainMaintenance1::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheEXT_T = Cvoid - -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkSwapchainPresentScalingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkReleaseSwapchainImagesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkIndirectCommandsLayoutNV_T = Cvoid -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 -end - -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end - -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkAccelerationStructureNV_T = Cvoid - -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR - -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + texelBufferAlignment::VkBool32 end -struct VkGeometryTrianglesNV +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR end -struct VkGeometryAABBNV +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkGeometryNV +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR + deviceMemoryReport::VkBool32 end -struct VkAccelerationStructureInfoNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceRobustness2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV +struct VkPhysicalDeviceRobustness2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -struct VkAccelerationStructureMemoryRequirementsInfoNV +struct VkSamplerCustomBorderColorCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + customBorderColor::VkClearColorValue + format::VkFormat end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 -end - -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} -end - -const VkTransformMatrixNV = VkTransformMatrixKHR - -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat -end - -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} + maxCustomBorderColorSamplers::UInt32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkAccelerationStructureKHR_T = Cvoid -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + buffer::VkBuffer end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + image::VkImage end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + imageView::VkImageView end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR - -struct VkImportMemoryHostPointerInfoEXT +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + sampler::VkSampler end -struct VkMemoryHostPointerPropertiesEXT +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -const VkPipelineCompilerControlFlagsAMD = VkFlags +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderCorePropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkDeviceMemoryOverallocationCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + graphicsPipelineLibrary::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkCheckpointDataNV +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} - -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL -end - -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + ycbcr2plane444Formats::VkBool32 end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + fragmentDensityMapDeferred::VkBool32 end -struct VkPerformanceOverrideInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFixedRateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} + +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFaultFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures - -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures - -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceDrmPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + reportAddressBinding::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkMemoryPriorityAllocateInfoEXT +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + depthClipControl::VkBool32 end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +struct VkPipelineViewportDepthClipControlCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + negativeOneToOne::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + renderPass::VkRenderPass + subpass::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + invocationMask::VkBool32 end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags - -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + pipelineIdentifier::NTuple{16, UInt8} end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + pipelinePropertiesIdentifier::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + optimal::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 -end - -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +end -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + colorWriteEnable::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + multiDraw::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +const VkMicromapEXT_T = Cvoid -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +const VkMicromapEXT = Ptr{VkMicromapEXT_T} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) -end +const VkMicromapCreateFlagsEXT = VkFlags -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress +end -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures - -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) + disallowMerging::VkBool32 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -const VkRemoteAddressNV = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -struct VkMemoryGetRemoteAddressInfoNV +struct VkDirectDriverLoadingInfoLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} - -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV_T = Cvoid + +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15242,6 +19749,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15376,12 +19965,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15402,14 +19989,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15462,6 +20051,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15732,6 +20369,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15870,6 +20573,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15896,10 +20605,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16080,6 +20801,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16622,6 +21349,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16648,7 +21387,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16682,6 +21421,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16696,7 +21441,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16706,6 +21451,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16742,12 +21505,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16760,12 +21541,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16784,6 +21559,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16814,6 +21595,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16826,6 +21619,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16846,12 +21645,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16870,12 +21687,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16884,10 +21725,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16906,6 +21851,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/x86_64-linux-musl.jl b/lib/x86_64-linux-musl.jl index aa738a8..56081ed 100644 --- a/lib/x86_64-linux-musl.jl +++ b/lib/x86_64-linux-musl.jl @@ -158,6 +158,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -165,6 +171,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -414,6 +421,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -425,6 +452,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -441,6 +474,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -578,6 +614,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -589,7 +631,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -655,6 +696,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -677,12 +727,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -690,21 +774,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -729,24 +823,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -852,6 +1010,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -908,7 +1067,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -918,6 +1081,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -937,9 +1105,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -987,6 +1159,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -997,17 +1171,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1280,6 +1451,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1364,12 +1536,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1529,6 +1708,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1629,8 +1839,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1665,8 +1875,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1803,10 +2016,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1817,7 +2033,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1839,6 +2054,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1873,15 +2091,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1914,6 +2143,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1951,14 +2182,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2012,6 +2245,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2024,6 +2260,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2035,6 +2272,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2053,12 +2291,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2071,6 +2316,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2119,7 +2365,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2157,15 +2411,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2192,6 +2449,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2200,6 +2459,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2208,6 +2468,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2215,6 +2480,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2223,8 +2491,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,8 +2504,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2253,6 +2525,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2280,6 +2553,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6046,6 +6323,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6885,6 +7165,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7977,6 +8258,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8342,6403 +8624,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} + +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +const VkDeferredOperationKHR_T = Cvoid + +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end + +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end + +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end + +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end + +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} +end + +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +struct VkPhysicalDevicePresentIdFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentId::VkBool32 +end + +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 + +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 + +const VkAccessFlags2KHR = VkAccessFlags2 + +const VkAccessFlagBits2KHR = VkAccessFlagBits2 + +const VkSubmitFlagBitsKHR = VkSubmitFlagBits + +const VkSubmitFlagsKHR = VkSubmitFlags + +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 +end + +struct VkCheckpointData2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 +end + +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 +end + +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end + +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 + +const VkCopyImageInfo2KHR = VkCopyImageInfo2 + +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 + +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 + +const VkBlitImageInfo2KHR = VkBlitImageInfo2 + +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo - -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT_T = Cvoid -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkDebugReportFlagsEXT = VkFlags -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} +end -struct VkImportSemaphoreFdInfoKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkSemaphoreGetFdInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end + +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -struct VkPresentRegionsKHR +struct VkPipelineRasterizationStateStreamCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkCuModuleNVX_T = Cvoid -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkCuFunctionNVX_T = Cvoid -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -const VkSubpassDependency2KHR = VkSubpassDependency2 +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} + +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkFenceImportFlagsKHR = VkFenceImportFlags - -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFenceGetFdInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + supportsTextureGatherLODBiasAMD::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +end -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryHandleTypeFlagsNV = VkFlags + +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceCounterDescriptionKHR +struct VkValidationFlagsEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -struct VkQueryPoolPerformanceCreateInfoKHR +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures + +struct VkImageViewASTCDecodeModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} -end - -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} + decodeMode::VkFormat end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkConditionalRenderingFlagsEXT = VkFlags -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkSurfaceFormat2KHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkDisplayPlaneProperties2KHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + powerState::VkDisplayPowerStateEXT end -struct VkDisplayModeProperties2KHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + deviceEvent::VkDeviceEventTypeEXT end -struct VkDisplayPlaneInfo2KHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + displayEvent::VkDisplayEventTypeEXT end -struct VkDisplayPlaneCapabilities2KHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkChromaLocationKHR = VkChromaLocation +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo - -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 -end - -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties - -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits - -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures - -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures - -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkRenderPassSampleLocationsBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -const VkDeferredOperationKHR_T = Cvoid +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkPipelineInfoKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkPipelineExecutablePropertiesKHR +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPipelineExecutableInfoKHR +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} + +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutableStatisticKHR +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkShaderModuleValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -struct VkPipelineLibraryCreateInfoKHR +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkPresentIdKHR +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -const VkAccessFlags2KHR = VkAccessFlags2 +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -const VkSubmitFlagsKHR = VkSubmitFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkDependencyInfoKHR = VkDependencyInfo +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkSubmitInfo2KHR = VkSubmitInfo2 +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +const VkAccelerationStructureNV_T = Cvoid -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) -end +const VkGeometryInstanceFlagsKHR = VkFlags -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +const VkTransformMatrixNV = VkTransformMatrixKHR -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) -end +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT_T = Cvoid +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} - -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + representativeFragmentTestEnable::VkBool32 end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + imageViewType::VkImageViewType end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkMemoryHostPointerPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + memoryTypeBits::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + minImportedHostPointerAlignment::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPipelineCompilerControlFlagsAMD = VkFlags -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end -const VkCuFunctionNVX_T = Cvoid +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end -struct VkCuModuleCreateInfoNVX +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + maxVertexAttribDivisor::UInt32 end -struct VkCuLaunchInfoNVX +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkImageViewHandleInfoNVX +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler + imageFootprint::VkBool32 end -struct VkImageViewAddressPropertiesNVX +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkTextureLODGatherFormatPropertiesAMD +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL sType::VkStructureType pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 + shaderIntegerFunctions2::VkBool32 end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkPerformanceConfigurationINTEL_T = Cvoid -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkExternalMemoryImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -struct VkExportMemoryAllocateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkValidationFlagsEXT +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + pUserData::Ptr{Cvoid} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures - -struct VkImageViewASTCDecodeModeEXT +struct VkQueryPoolPerformanceQueryCreateInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 -end - -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 + marker::UInt64 end -const VkConditionalRenderingFlagsEXT = VkFlags - -struct VkConditionalRenderingBeginInfoEXT +struct VkPerformanceStreamMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + marker::UInt32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -const VkSurfaceCounterFlagsEXT = VkFlags - -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkDisplayEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkSwapchainCounterCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} - -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) -end +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPresentTimesInfoGOOGLE +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + fragmentDensityMapAttachment::VkAttachmentReference end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + memoryPriority::VkBool32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkHdrMetadataEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -const VkDebugUtilsMessengerEXT_T = Cvoid +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + ycbcrImageArrays::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} - -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -struct VkPipelineCoverageModulationStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + presentMode::VkPresentModeKHR end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkSurfacePresentScalingCapabilitiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + swapchainMaintenance1::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheEXT_T = Cvoid - -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkSwapchainPresentScalingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkReleaseSwapchainImagesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkIndirectCommandsLayoutNV_T = Cvoid -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 -end - -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end - -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkAccelerationStructureNV_T = Cvoid - -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR - -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + texelBufferAlignment::VkBool32 end -struct VkGeometryTrianglesNV +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR end -struct VkGeometryAABBNV +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkGeometryNV +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR + deviceMemoryReport::VkBool32 end -struct VkAccelerationStructureInfoNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceRobustness2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV +struct VkPhysicalDeviceRobustness2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -struct VkAccelerationStructureMemoryRequirementsInfoNV +struct VkSamplerCustomBorderColorCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + customBorderColor::VkClearColorValue + format::VkFormat end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 -end - -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} -end - -const VkTransformMatrixNV = VkTransformMatrixKHR - -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat -end - -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} + maxCustomBorderColorSamplers::UInt32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkAccelerationStructureKHR_T = Cvoid -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + buffer::VkBuffer end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + image::VkImage end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + imageView::VkImageView end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR - -struct VkImportMemoryHostPointerInfoEXT +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + sampler::VkSampler end -struct VkMemoryHostPointerPropertiesEXT +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -const VkPipelineCompilerControlFlagsAMD = VkFlags +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderCorePropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkDeviceMemoryOverallocationCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + graphicsPipelineLibrary::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkCheckpointDataNV +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} - -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL -end - -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + ycbcr2plane444Formats::VkBool32 end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + fragmentDensityMapDeferred::VkBool32 end -struct VkPerformanceOverrideInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFixedRateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} + +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFaultFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures - -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures - -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceDrmPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + reportAddressBinding::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkMemoryPriorityAllocateInfoEXT +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + depthClipControl::VkBool32 end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +struct VkPipelineViewportDepthClipControlCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + negativeOneToOne::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + renderPass::VkRenderPass + subpass::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + invocationMask::VkBool32 end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags - -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + pipelineIdentifier::NTuple{16, UInt8} end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + pipelinePropertiesIdentifier::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + optimal::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 -end - -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +end -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + colorWriteEnable::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + multiDraw::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +const VkMicromapEXT_T = Cvoid -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +const VkMicromapEXT = Ptr{VkMicromapEXT_T} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) -end +const VkMicromapCreateFlagsEXT = VkFlags -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress +end -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures - -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) + disallowMerging::VkBool32 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -const VkRemoteAddressNV = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -struct VkMemoryGetRemoteAddressInfoNV +struct VkDirectDriverLoadingInfoLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} - -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV_T = Cvoid + +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15242,6 +19749,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkWaylandSurfaceCreateFlagsKHR = VkFlags const wl_display = Cvoid @@ -15376,12 +19965,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15402,14 +19989,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15462,6 +20051,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15732,6 +20369,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15870,6 +20573,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15896,10 +20605,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16080,6 +20801,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16622,6 +21349,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16648,7 +21387,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16682,6 +21421,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16696,7 +21441,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16706,6 +21451,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16742,12 +21505,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16760,12 +21541,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16784,6 +21559,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16814,6 +21595,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16826,6 +21619,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16846,12 +21645,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16870,12 +21687,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16884,10 +21725,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16906,6 +21851,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WAYLAND_H_ = 1 const VK_KHR_wayland_surface = 1 diff --git a/lib/x86_64-unknown-freebsd.jl b/lib/x86_64-unknown-freebsd.jl index 36b9ef4..d7da3ac 100644 --- a/lib/x86_64-unknown-freebsd.jl +++ b/lib/x86_64-unknown-freebsd.jl @@ -158,6 +158,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -165,6 +171,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -414,6 +421,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -425,6 +452,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -441,6 +474,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -578,6 +614,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -589,7 +631,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -655,6 +696,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -677,12 +727,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -690,21 +774,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -729,24 +823,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -852,6 +1010,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -908,7 +1067,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -918,6 +1081,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -937,9 +1105,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -987,6 +1159,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -997,17 +1171,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1280,6 +1451,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1364,12 +1536,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1529,6 +1708,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1629,8 +1839,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1665,8 +1875,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1803,10 +2016,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1817,7 +2033,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1839,6 +2054,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1873,15 +2091,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1914,6 +2143,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1951,14 +2182,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2012,6 +2245,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2024,6 +2260,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2035,6 +2272,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2053,12 +2291,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2071,6 +2316,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2119,7 +2365,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2157,15 +2411,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2192,6 +2449,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2200,6 +2459,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2208,6 +2468,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2215,6 +2480,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2223,8 +2491,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2235,8 +2504,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2253,6 +2525,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2280,6 +2553,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6046,6 +6323,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6885,6 +7165,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7977,6 +8258,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8342,6403 +8624,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end + +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures + +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo + +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} + +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} + +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end + +const VkDeferredOperationKHR_T = Cvoid + +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineExecutableInfo::VkBool32 +end + +struct VkPipelineInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline +end + +struct VkPipelineExecutablePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 +end + +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end + +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} +end + +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +struct VkPhysicalDevicePresentIdFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentId::VkBool32 +end + +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 + +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 + +const VkAccessFlags2KHR = VkAccessFlags2 + +const VkAccessFlagBits2KHR = VkAccessFlagBits2 + +const VkSubmitFlagBitsKHR = VkSubmitFlagBits + +const VkSubmitFlagsKHR = VkSubmitFlags + +const VkMemoryBarrier2KHR = VkMemoryBarrier2 + +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + +const VkDependencyInfoKHR = VkDependencyInfo + +const VkSubmitInfo2KHR = VkSubmitInfo2 + +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags2 +end + +struct VkCheckpointData2NV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +end + +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShaderBarycentric::VkBool32 +end + +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 +end + +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 +end + +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 +end + +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 + +const VkCopyImageInfo2KHR = VkCopyImageInfo2 + +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 + +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 + +const VkBlitImageInfo2KHR = VkBlitImageInfo2 + +const VkResolveImageInfo2KHR = VkResolveImageInfo2 + +const VkBufferCopy2KHR = VkBufferCopy2 + +const VkImageCopy2KHR = VkImageCopy2 + +const VkImageBlit2KHR = VkImageBlit2 + +const VkBufferImageCopy2KHR = VkBufferImageCopy2 + +const VkImageResolve2KHR = VkImageResolve2 + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end + +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 + +const VkFormatProperties3KHR = VkFormatProperties3 -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) +end -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo - -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo - -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end -struct VkImportMemoryFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkMemoryFdPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -struct VkMemoryGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT_T = Cvoid -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) -end +const VkDebugReportFlagsEXT = VkFlags -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} + +struct VkDebugReportCallbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +end -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +end -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD +end -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} +end -struct VkImportSemaphoreFdInfoKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkSemaphoreGetFdInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} + +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +end + +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -struct VkPresentRegionsKHR +struct VkPipelineRasterizationStateStreamCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) end -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +end -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkCuModuleNVX_T = Cvoid -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkCuFunctionNVX_T = Cvoid -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -const VkSubpassDependency2KHR = VkSubpassDependency2 +struct VkCuModuleCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + dataSize::Csize_t + pData::Ptr{Cvoid} +end -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +struct VkCuFunctionCreateInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _module::VkCuModuleNVX + pName::Ptr{Cchar} +end -const VkSubpassEndInfoKHR = VkSubpassEndInfo +struct VkCuLaunchInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} + +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +end -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkFenceImportFlagsKHR = VkFenceImportFlags - -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkFenceGetFdInfoKHR +struct VkTextureLODGatherFormatPropertiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits + supportsTextureGatherLODBiasAMD::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +end -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} + +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryHandleTypeFlagsNV = VkFlags + +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +const VkExternalMemoryFeatureFlagsNV = VkFlags + +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV end -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -const VkAcquireProfilingLockFlagsKHR = VkFlags +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +end -struct VkPhysicalDevicePerformanceQueryFeaturesKHR +struct VkExternalMemoryImageCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkExportMemoryAllocateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -struct VkPerformanceCounterDescriptionKHR +struct VkValidationFlagsEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -struct VkQueryPoolPerformanceCreateInfoKHR +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures + +struct VkImageViewASTCDecodeModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} -end - -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} + decodeMode::VkFormat end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceASTCDecodeFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeModeSharedExponent::VkBool32 end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} - -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineRobustness::VkBool32 end -struct VkAcquireProfilingLockInfoKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkPerformanceQuerySubmitInfoKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +const VkConditionalRenderingFlagsEXT = VkFlags -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT end -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} + +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end -struct VkPhysicalDeviceSurfaceInfo2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surface::VkSurfaceKHR +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -struct VkSurfaceCapabilities2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkSurfaceFormat2KHR +const VkSurfaceCounterFlagsEXT = VkFlags + +struct VkSurfaceCapabilities2EXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkDisplayPlaneProperties2KHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR + powerState::VkDisplayPowerStateEXT end -struct VkDisplayModeProperties2KHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + deviceEvent::VkDeviceEventTypeEXT end -struct VkDisplayPlaneInfo2KHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + displayEvent::VkDisplayEventTypeEXT end -struct VkDisplayPlaneCapabilities2KHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkChromaLocationKHR = VkChromaLocation +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV +end -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo - -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +struct VkXYColorEXT + x::Cfloat + y::Cfloat +end -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} +const VkDebugUtilsMessengerEXT_T = Cvoid -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 -end - -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties - -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits - -const VkResolveModeFlagsKHR = VkResolveModeFlags - -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve - -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - -const VkSemaphoreTypeKHR = VkSemaphoreType +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} +end -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures - -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures - -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkPhysicalDeviceFragmentShadingRateKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} - -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout - -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout - -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} - -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkRenderPassSampleLocationsBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineSampleLocationsStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -const VkDeferredOperationKHR_T = Cvoid +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags + +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -struct VkPipelineInfoKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -struct VkPipelineExecutablePropertiesKHR +struct VkImageDrmFormatModifierListCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} end -struct VkPipelineExecutableInfoKHR +struct VkImageDrmFormatModifierExplicitCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 end -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} end -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} + +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) end -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +const VkValidationCacheEXT_T = Cvoid + +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} + +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineExecutableStatisticKHR +const VkValidationCacheCreateFlagsEXT = VkFlags + +struct VkValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -struct VkPipelineExecutableInternalRepresentationKHR +struct VkShaderModuleValidationCacheCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} + +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -struct VkPipelineLibraryCreateInfoKHR +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits + +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags + +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo + +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures + +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties + +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo + +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport + +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +end + +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +end + +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +end + +struct VkPipelineViewportShadingRateImageStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -struct VkPresentIdKHR +struct VkPhysicalDeviceShadingRateImageFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -struct VkPhysicalDevicePresentIdFeaturesKHR +struct VkPhysicalDeviceShadingRateImagePropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - presentId::VkBool32 + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -const VkAccessFlags2KHR = VkAccessFlags2 +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -const VkSubmitFlagsKHR = VkSubmitFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkDependencyInfoKHR = VkDependencyInfo +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +end -const VkSubmitInfo2KHR = VkSubmitInfo2 +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +const VkAccelerationStructureNV_T = Cvoid -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} -struct VkQueueFamilyCheckpointProperties2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkCheckpointData2NV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) -end +const VkGeometryInstanceFlagsKHR = VkFlags -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) -end +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) -end +const VkBuildAccelerationStructureFlagsKHR = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkAccelerationStructureInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 - -const VkBufferCopy2KHR = VkBufferCopy2 - -const VkImageCopy2KHR = VkImageCopy2 - -const VkImageBlit2KHR = VkImageBlit2 - -const VkBufferImageCopy2KHR = VkBufferImageCopy2 - -const VkImageResolve2KHR = VkImageResolve2 - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} - -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkBindAccelerationStructureMemoryInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkWriteDescriptorSetAccelerationStructureNV + sType::VkStructureType + pNext::Ptr{Cvoid} + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkAccelerationStructureMemoryRequirementsInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) +struct VkPhysicalDeviceRayTracingPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +const VkTransformMatrixNV = VkTransformMatrixKHR -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) -end +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 - -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT_T = Cvoid +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} - -struct VkDebugReportCallbackCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} - -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTest::VkBool32 end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + representativeFragmentTestEnable::VkBool32 end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkPhysicalDeviceImageViewImageFormatInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + imageViewType::VkImageViewType end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkFilterCubicImageViewImageFormatPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR + +struct VkImportMemoryHostPointerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkMemoryHostPointerPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + memoryTypeBits::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 + minImportedHostPointerAlignment::VkDeviceSize end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkPipelineCompilerControlFlagsAMD = VkFlags -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +struct VkCalibratedTimestampInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + timeDomain::VkTimeDomainEXT end -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -const VkCuModuleNVX_T = Cvoid - -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end -const VkCuFunctionNVX_T = Cvoid +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 +end -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +end -struct VkCuModuleCreateInfoNVX +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkCuFunctionCreateInfoNVX +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} + maxVertexAttribDivisor::UInt32 end -struct VkCuLaunchInfoNVX +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 +end + +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +end + +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +struct VkPhysicalDeviceMeshShaderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkPhysicalDeviceMeshShaderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} + +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkImageViewHandleInfoNVX +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler + imageFootprint::VkBool32 end -struct VkImageViewAddressPropertiesNVX +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkQueueFamilyCheckpointPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + checkpointExecutionStageMask::VkPipelineStageFlags end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkCheckpointDataNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkTextureLODGatherFormatPropertiesAMD +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL sType::VkStructureType pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 + shaderIntegerFunctions2::VkBool32 end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 -end +const VkPerformanceConfigurationINTEL_T = Cvoid -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t -end +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} - -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -const VkExternalMemoryHandleTypeFlagsNV = VkFlags - -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -const VkExternalMemoryFeatureFlagsNV = VkFlags - -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkExternalMemoryImageCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV -end +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} -struct VkExportMemoryAllocateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkValidationFlagsEXT +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + pUserData::Ptr{Cvoid} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures - -struct VkImageViewASTCDecodeModeEXT +struct VkQueryPoolPerformanceQueryCreateInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL + +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 -end - -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 + marker::UInt64 end -const VkConditionalRenderingFlagsEXT = VkFlags - -struct VkConditionalRenderingBeginInfoEXT +struct VkPerformanceStreamMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + marker::UInt32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} -end +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -const VkSurfaceCounterFlagsEXT = VkFlags - -struct VkSurfaceCapabilities2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkDisplayEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -struct VkSwapchainCounterCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} - -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +struct VkPhysicalDevicePCIBusInfoPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingSupport::VkBool32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkSwapchainDisplayNativeHdrCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + localDimmingEnable::VkBool32 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) -end +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -struct VkPresentTimesInfoGOOGLE +struct VkRenderPassFragmentDensityMapCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} + fragmentDensityMapAttachment::VkAttachmentReference end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) -end +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkPhysicalDeviceShaderCoreProperties2AMD sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 +end -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + memoryPriority::VkBool32 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 +end -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo + +struct VkBufferDeviceAddressCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + deviceAddress::VkDeviceAddress end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits + +const VkToolPurposeFlagsEXT = VkToolPurposeFlags + +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +end -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo + +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +end + +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkHdrMetadataEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -const VkDebugUtilsMessengerEXT_T = Cvoid +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkBool32 +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkPipelineCoverageReductionStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkFramebufferMixedSamplesCombinationNV + sType::VkStructureType + pNext::Ptr{Cvoid} + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + ycbcrImageArrays::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} - -struct VkDebugUtilsMessengerCreateInfoEXT +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + provokingVertexMode::VkProvokingVertexModeEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +struct VkHeadlessSurfaceCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkHeadlessSurfaceCreateFlagsEXT end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceLineRasterizationFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkPipelineRasterizationLineStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + extendedDynamicState::VkBool32 end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -const VkSamplerReductionModeEXT = VkSamplerReductionMode +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkSampleLocationsInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPipelineSampleLocationsStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -struct VkMultisamplePropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +end -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +end -struct VkPipelineCoverageModulationStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierListCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} +const VkPresentScalingFlagsEXT = VkFlags + +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +const VkPresentGravityFlagsEXT = VkFlags + +struct VkSurfacePresentModeEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + presentMode::VkPresentModeKHR end -struct VkImageDrmFormatModifierPropertiesEXT +struct VkSurfacePresentScalingCapabilitiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + swapchainMaintenance1::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} - -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheEXT_T = Cvoid - -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} - -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkValidationCacheCreateFlagsEXT = VkFlags - -struct VkValidationCacheCreateInfoEXT +struct VkSwapchainPresentScalingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkReleaseSwapchainImagesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +const VkIndirectCommandsLayoutNV_T = Cvoid -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) -end +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +const VkIndirectStateFlagsNV = VkFlags + +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceGeneratedCommands::VkBool32 +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +struct VkGraphicsShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +struct VkGraphicsPipelineShaderGroupsCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + indexType::VkIndexType +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 + stride::UInt32 end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImageFeaturesNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkPhysicalDeviceShadingRateImagePropertiesNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 -end - -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 -end - -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkAccelerationStructureNV_T = Cvoid - -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} - -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkGeometryTypeNV = VkGeometryTypeKHR - -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR - -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryFlagsKHR = VkFlags - -const VkGeometryFlagsNV = VkGeometryFlagsKHR - -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR - -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR - -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR - -struct VkRayTracingShaderGroupCreateInfoNV +struct VkCommandBufferInheritanceViewportScissorInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} end -struct VkRayTracingPipelineCreateInfoNV +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + texelBufferAlignment::VkBool32 end -struct VkGeometryTrianglesNV +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties + +struct VkRenderPassTransformBeginInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 - indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR end -struct VkGeometryAABBNV +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 - stride::UInt32 - offset::VkDeviceSize + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkGeometryNV +const VkDeviceMemoryReportFlagsEXT = VkFlags + +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR + deviceMemoryReport::VkBool32 end -struct VkAccelerationStructureInfoNV +struct VkDeviceMemoryReportCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} + +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +end + +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkAccelerationStructureCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkPhysicalDeviceRobustness2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -struct VkWriteDescriptorSetAccelerationStructureNV +struct VkPhysicalDeviceRobustness2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -struct VkAccelerationStructureMemoryRequirementsInfoNV +struct VkSamplerCustomBorderColorCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV + customBorderColor::VkClearColorValue + format::VkFormat end -struct VkPhysicalDeviceRayTracingPropertiesNV +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 -end - -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} -end - -const VkTransformMatrixNV = VkTransformMatrixKHR - -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat -end - -const VkAabbPositionsNV = VkAabbPositionsKHR - -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} + maxCustomBorderColorSamplers::UInt32 end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotEXT = VkPrivateDataSlot -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) -end +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) -end +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + diagnosticsConfig::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +struct VkDeviceDiagnosticsConfigCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceDiagnosticsConfigFlagsNV end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkAccelerationStructureKHR_T = Cvoid -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorAddressInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +struct VkDescriptorBufferBindingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + address::VkDeviceAddress + usage::VkBufferUsageFlags end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 + buffer::VkBuffer end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + image::VkImage end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + imageView::VkImageView end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR - -struct VkImportMemoryHostPointerInfoEXT +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + sampler::VkSampler end -struct VkMemoryHostPointerPropertiesEXT +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -const VkPipelineCompilerControlFlagsAMD = VkFlags +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) +end -struct VkPipelineCompilerControlCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -struct VkCalibratedTimestampInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) +end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderCorePropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkDeviceMemoryOverallocationCreateInfoAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + graphicsPipelineLibrary::VkBool32 end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkGraphicsPipelineLibraryCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + flags::VkGraphicsPipelineLibraryFlagsEXT end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags + +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags + +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} - -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) -end +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkQueueFamilyCheckpointPropertiesNV +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkCheckpointDataNV +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} - -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -const VkPerformanceConfigurationINTEL_T = Cvoid - -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) return getfield(x, f) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) fptr = getproperty(ptr, f) GC.@preserve r unsafe_load(fptr) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) unsafe_store!(getproperty(x, f), v) end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val end ref[] end -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL -end - -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt64 + ycbcr2plane444Formats::VkBool32 end -struct VkPerformanceStreamMarkerInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - marker::UInt32 + fragmentDensityMapDeferred::VkBool32 end -struct VkPerformanceOverrideInfoINTEL +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkCopyCommandTransformInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + transform::VkSurfaceTransformFlagBitsKHR end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +const VkImageCompressionFixedRateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +struct VkSubresourceLayout2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subresourceLayout::VkSubresourceLayout end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkImageSubresource2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageSubresource::VkImageSubresource end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +struct VkImageCompressionPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} + +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + attachmentFeedbackLoopLayout::VkBool32 end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkPhysicalDevice4444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFaultFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} + +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + mutableDescriptorType::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) -end +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures - -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures - -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkVertexInputAttributeDescription2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkShaderCorePropertiesFlagsAMD = VkFlags +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +end -struct VkPhysicalDeviceShaderCoreProperties2AMD +struct VkPhysicalDeviceDrmPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkDeviceAddressBindingFlagsEXT = VkFlags + +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + reportAddressBinding::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkDeviceAddressBindingCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkMemoryPriorityAllocateInfoEXT +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + depthClipControl::VkBool32 end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +struct VkPipelineViewportDepthClipControlCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + negativeOneToOne::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + renderPass::VkRenderPass + subpass::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} - -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassShading::VkBool32 end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + invocationMask::VkBool32 end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkCooperativeMatrixPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} - -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags - -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 -end +const VkPipelineInfoEXT = VkPipelineInfoKHR -struct VkPipelineCoverageReductionStateCreateInfoNV +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + pipelineIdentifier::NTuple{16, UInt8} end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + pipelinePropertiesIdentifier::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + optimal::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 -end - -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} + +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +end -struct VkHeadlessSurfaceCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end + +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) end -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceLineRasterizationPropertiesEXT +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +end + +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 + colorWriteEnable::VkBool32 end -struct VkPipelineRasterizationLineStateCreateInfoEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceMultiDrawFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + multiDraw::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPhysicalDeviceMultiDrawPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + maxMultiDrawCount::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) -end +const VkMicromapEXT_T = Cvoid -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) -end +const VkMicromapEXT = Ptr{VkMicromapEXT_T} -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) -end +const VkBuildMicromapFlagsEXT = VkFlags -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) -end +const VkMicromapCreateFlagsEXT = VkFlags -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +struct VkMicromapBuildInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - -const VkIndirectCommandsLayoutNV_T = Cvoid - -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress +end -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 end -const VkIndirectStateFlagsNV = VkFlags - -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) +end + +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures - -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) +end + +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end + +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - subpassShading::VkBool32 + subpassMergeFeedback::VkBool32 end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +struct VkRenderPassCreationControlEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} - -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) + disallowMerging::VkBool32 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkRenderPassSubpassFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} - -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) -end +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -const VkRemoteAddressNV = Ptr{Cvoid} +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} -struct VkMemoryGetRemoteAddressInfoNV +struct VkDirectDriverLoadingInfoLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} - -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV_T = Cvoid + +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + amigoProfiling::VkBool32 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 -end - -const VkAccelerationStructureKHR_T = Cvoid - -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} - -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 -end - -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 + multiviewPerViewViewports::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureCreateFlagsKHR = VkFlags - -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 end -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +end -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +@cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end +const VkAccelerationStructureCreateFlagsKHR = VkFlags + struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15242,6 +19749,88 @@ struct VkPhysicalDeviceRayQueryFeaturesKHR rayQuery::VkBool32 end +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + const VkXcbSurfaceCreateFlagsKHR = VkFlags struct VkXcbSurfaceCreateInfoKHR @@ -15340,12 +19929,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15366,14 +19953,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15426,6 +20015,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15696,6 +20333,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -15834,6 +20537,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -15860,10 +20569,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16044,6 +20765,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16586,6 +21313,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16612,7 +21351,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16646,6 +21385,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16660,7 +21405,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16670,6 +21415,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16706,12 +21469,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16724,12 +21505,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16748,6 +21523,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -16778,6 +21559,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -16790,6 +21583,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -16810,12 +21609,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -16834,12 +21651,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -16848,10 +21689,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -16870,6 +21815,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_XCB_H_ = 1 const VK_KHR_xcb_surface = 1 diff --git a/lib/x86_64-w64-mingw32.jl b/lib/x86_64-w64-mingw32.jl index 99508d1..d83f8c2 100644 --- a/lib/x86_64-w64-mingw32.jl +++ b/lib/x86_64-w64-mingw32.jl @@ -178,6 +178,12 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 VK_ERROR_NOT_PERMITTED_KHR = -1000174001 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 @@ -185,6 +191,7 @@ const VkCommandPool = Ptr{VkCommandPool_T} VK_THREAD_DONE_KHR = 1000268001 VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003 VK_ERROR_FRAGMENTATION_EXT = -1000161000 @@ -434,6 +441,26 @@ end VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 @@ -445,6 +472,12 @@ end VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 @@ -461,6 +494,9 @@ end VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 @@ -598,6 +634,12 @@ end VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 @@ -609,7 +651,6 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 @@ -675,6 +716,15 @@ end VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 @@ -697,12 +747,46 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 @@ -710,21 +794,31 @@ end VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 @@ -749,24 +843,88 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000 @@ -872,6 +1030,7 @@ end VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002 @@ -928,7 +1087,11 @@ end VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000 @@ -938,6 +1101,11 @@ end VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647 end +@cenum VkPipelineCacheHeaderVersion::UInt32 begin + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 +end + @cenum VkImageLayout::UInt32 begin VK_IMAGE_LAYOUT_UNDEFINED = 0 VK_IMAGE_LAYOUT_GENERAL = 1 @@ -957,9 +1125,13 @@ end VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003 @@ -1007,6 +1179,8 @@ end VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 @@ -1017,17 +1191,14 @@ end VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000 VK_OBJECT_TYPE_MAX_ENUM = 2147483647 end -@cenum VkPipelineCacheHeaderVersion::UInt32 begin - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647 -end - @cenum VkVendorId::UInt32 begin VK_VENDOR_ID_VIV = 65537 VK_VENDOR_ID_VSI = 65538 @@ -1300,6 +1471,7 @@ end VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002 @@ -1384,12 +1556,19 @@ end VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 VK_QUERY_TYPE_MAX_ENUM = 2147483647 end @@ -1549,6 +1728,37 @@ end VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002 @@ -1649,8 +1859,8 @@ end @cenum VkFilter::UInt32 begin VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_CUBIC_EXT = 1000015000 + VK_FILTER_CUBIC_IMG = 1000015000 VK_FILTER_MAX_ENUM = 2147483647 end @@ -1685,8 +1895,11 @@ end VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000 + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000 VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647 end @@ -1823,10 +2036,13 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 33554432 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 67108864 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536 @@ -1837,7 +2053,6 @@ const VkImageAspectFlags = VkFlags VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1859,6 +2074,9 @@ const VkFormatFeatureFlags = VkFlags VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 65536 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32 @@ -1893,15 +2111,26 @@ const VkSampleCountFlags = VkFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 1024 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 2048 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 4096 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647 end const VkImageUsageFlags = VkFlags +@cenum VkInstanceCreateFlagBits::UInt32 begin + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1 + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkInstanceCreateFlags = VkFlags @cenum VkMemoryHeapFlagBits::UInt32 begin @@ -1934,6 +2163,8 @@ const VkMemoryPropertyFlags = VkFlags VK_QUEUE_TRANSFER_BIT = 4 VK_QUEUE_SPARSE_BINDING_BIT = 8 VK_QUEUE_PROTECTED_BIT = 16 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 32 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256 VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -1971,14 +2202,16 @@ const VkDeviceQueueCreateFlags = VkFlags VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576 VK_PIPELINE_STAGE_NONE_KHR = 0 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2032,6 +2265,9 @@ const VkEventCreateFlags = VkFlags VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 8192 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2044,6 +2280,7 @@ const VkQueryPoolCreateFlags = VkFlags VK_QUERY_RESULT_WAIT_BIT = 2 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4 VK_QUERY_RESULT_PARTIAL_BIT = 8 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 16 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2055,6 +2292,7 @@ const VkQueryResultFlags = VkFlags VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4 VK_BUFFER_CREATE_PROTECTED_BIT = 8 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 32 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2073,12 +2311,19 @@ const VkBufferCreateFlags = VkFlags VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 8192 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 16384 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 2097152 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 4194304 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 67108864 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072 @@ -2091,6 +2336,7 @@ const VkBufferViewCreateFlags = VkFlags @cenum VkImageViewCreateFlagBits::UInt32 begin VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 4 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2139,7 +2385,15 @@ const VkColorComponentFlags = VkFlags VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 536870912 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824 VK_PIPELINE_CREATE_DISPATCH_BASE = 16 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304 @@ -2177,15 +2431,18 @@ const VkPipelineShaderStageCreateFlags = VkFlags VK_SHADER_STAGE_MISS_BIT_KHR = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192 - VK_SHADER_STAGE_TASK_BIT_NV = 64 - VK_SHADER_STAGE_MESH_BIT_NV = 128 + VK_SHADER_STAGE_TASK_BIT_EXT = 64 + VK_SHADER_STAGE_MESH_BIT_EXT = 128 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 524288 VK_SHADER_STAGE_RAYGEN_BIT_NV = 256 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024 VK_SHADER_STAGE_MISS_BIT_NV = 2048 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096 VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192 + VK_SHADER_STAGE_TASK_BIT_NV = 64 + VK_SHADER_STAGE_MESH_BIT_NV = 128 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2212,6 +2469,8 @@ const VkPipelineRasterizationStateCreateFlags = VkFlags const VkPipelineMultisampleStateCreateFlags = VkFlags @cenum VkPipelineDepthStencilStateCreateFlagBits::UInt32 begin + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2220,6 +2479,7 @@ end const VkPipelineDepthStencilStateCreateFlags = VkFlags @cenum VkPipelineColorBlendStateCreateFlagBits::UInt32 begin + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2228,6 +2488,11 @@ const VkPipelineColorBlendStateCreateFlags = VkFlags const VkPipelineDynamicStateCreateFlags = VkFlags +@cenum VkPipelineLayoutCreateFlagBits::UInt32 begin + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2 + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 +end + const VkPipelineLayoutCreateFlags = VkFlags const VkShaderStageFlags = VkFlags @@ -2235,6 +2500,9 @@ const VkShaderStageFlags = VkFlags @cenum VkSamplerCreateFlagBits::UInt32 begin VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2243,8 +2511,9 @@ const VkSamplerCreateFlags = VkFlags @cenum VkDescriptorPoolCreateFlagBits::UInt32 begin VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2255,8 +2524,11 @@ const VkDescriptorPoolResetFlags = VkFlags @cenum VkDescriptorSetLayoutCreateFlagBits::UInt32 begin VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 16 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 32 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647 end @@ -2273,6 +2545,7 @@ const VkAttachmentDescriptionFlags = VkFlags VK_DEPENDENCY_BY_REGION_BIT = 1 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647 @@ -2300,6 +2573,10 @@ const VkRenderPassCreateFlags = VkFlags VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64 @@ -6066,6 +6343,9 @@ end VK_DRIVER_ID_MESA_PANVK = 20 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2 VK_DRIVER_ID_MESA_RADV_KHR = 3 @@ -6905,6 +7185,7 @@ const VkSubmitFlags = VkFlags VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1 VK_RENDERING_SUSPENDING_BIT = 2 VK_RENDERING_RESUMING_BIT = 4 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1 VK_RENDERING_SUSPENDING_BIT_KHR = 2 VK_RENDERING_RESUMING_BIT_KHR = 4 @@ -7997,6 +8278,7 @@ const VkSwapchainKHR = Ptr{VkSwapchainKHR_T} VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 8 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end @@ -8362,6403 +8644,10628 @@ function vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllo ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkSwapchainCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkSwapchainKHR}), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) end -const VkRenderingFlagsKHR = VkRenderingFlags +const VkVideoSessionKHR_T = Cvoid -const VkRenderingFlagBitsKHR = VkRenderingFlagBits +const VkVideoSessionKHR = Ptr{VkVideoSessionKHR_T} -const VkRenderingInfoKHR = VkRenderingInfo +const VkVideoSessionParametersKHR_T = Cvoid -const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo +const VkVideoSessionParametersKHR = Ptr{VkVideoSessionParametersKHR_T} -const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo +@cenum VkQueryResultStatusKHR::Int32 begin + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 2147483647 +end -const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures +@cenum VkVideoCodecOperationFlagBitsKHR::UInt32 begin + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0 + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 1 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 2 + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo +const VkVideoCodecOperationFlagsKHR = VkFlags -struct VkRenderingFragmentShadingRateAttachmentInfoKHR +@cenum VkVideoChromaSubsamplingFlagBitsKHR::UInt32 begin + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0 + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 1 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 2 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 4 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 8 + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoChromaSubsamplingFlagsKHR = VkFlags + +@cenum VkVideoComponentBitDepthFlagBitsKHR::UInt32 begin + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0 + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 1 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 4 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 16 + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoComponentBitDepthFlagsKHR = VkFlags + +@cenum VkVideoCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 2 + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCapabilityFlagsKHR = VkFlags + +@cenum VkVideoSessionCreateFlagBitsKHR::UInt32 begin + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 1 + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoSessionCreateFlagsKHR = VkFlags + +const VkVideoSessionParametersCreateFlagsKHR = VkFlags + +const VkVideoBeginCodingFlagsKHR = VkFlags + +const VkVideoEndCodingFlagsKHR = VkFlags + +@cenum VkVideoCodingControlFlagBitsKHR::UInt32 begin + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 1 + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoCodingControlFlagsKHR = VkFlags + +struct VkQueueFamilyQueryResultStatusPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout - shadingRateAttachmentTexelSize::VkExtent2D + queryResultStatusSupport::VkBool32 end -struct VkRenderingFragmentDensityMapAttachmentInfoEXT +struct VkQueueFamilyVideoPropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - imageView::VkImageView - imageLayout::VkImageLayout + videoCodecOperations::VkVideoCodecOperationFlagsKHR end -struct VkAttachmentSampleCountInfoAMD +struct VkVideoProfileInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - colorAttachmentCount::UInt32 - pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} - depthStencilAttachmentSamples::VkSampleCountFlagBits + videoCodecOperation::VkVideoCodecOperationFlagBitsKHR + chromaSubsampling::VkVideoChromaSubsamplingFlagsKHR + lumaBitDepth::VkVideoComponentBitDepthFlagsKHR + chromaBitDepth::VkVideoComponentBitDepthFlagsKHR end -const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - -struct VkMultiviewPerViewAttributesInfoNVX +struct VkVideoProfileListInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - perViewAttributes::VkBool32 - perViewAttributesPositionXOnly::VkBool32 + profileCount::UInt32 + pProfiles::Ptr{VkVideoProfileInfoKHR} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) -const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} +struct VkVideoCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCapabilityFlagsKHR + minBitstreamBufferOffsetAlignment::VkDeviceSize + minBitstreamBufferSizeAlignment::VkDeviceSize + pictureAccessGranularity::VkExtent2D + minCodedExtent::VkExtent2D + maxCodedExtent::VkExtent2D + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + stdHeaderVersion::VkExtensionProperties +end -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} +struct VkPhysicalDeviceVideoFormatInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageUsage::VkImageUsageFlags +end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) - ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoFormatPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + format::VkFormat + componentMapping::VkComponentMapping + imageCreateFlags::VkImageCreateFlags + imageType::VkImageType + imageTiling::VkImageTiling + imageUsageFlags::VkImageUsageFlags end -function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +struct VkVideoPictureResourceInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + codedOffset::VkOffset2D + codedExtent::VkExtent2D + baseArrayLayer::UInt32 + imageViewBinding::VkImageView end -function vkCmdEndRenderingKHR(commandBuffer) - ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoReferenceSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + slotIndex::Int32 + pPictureResource::Ptr{VkVideoPictureResourceInfoKHR} end -function vkCmdEndRenderingKHR(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkVideoSessionMemoryRequirementsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memoryRequirements::VkMemoryRequirements end -const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo +struct VkBindVideoSessionMemoryInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryBindIndex::UInt32 + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + memorySize::VkDeviceSize +end -const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures +struct VkVideoSessionCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + flags::VkVideoSessionCreateFlagsKHR + pVideoProfile::Ptr{VkVideoProfileInfoKHR} + pictureFormat::VkFormat + maxCodedExtent::VkExtent2D + referencePictureFormat::VkFormat + maxDpbSlots::UInt32 + maxActiveReferencePictures::UInt32 + pStdHeaderVersion::Ptr{VkExtensionProperties} +end -const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties +struct VkVideoSessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoSessionParametersCreateFlagsKHR + videoSessionParametersTemplate::VkVideoSessionParametersKHR + videoSession::VkVideoSessionKHR +end -const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 +struct VkVideoSessionParametersUpdateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + updateSequenceCount::UInt32 +end -const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 +struct VkVideoBeginCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoBeginCodingFlagsKHR + videoSession::VkVideoSessionKHR + videoSessionParameters::VkVideoSessionParametersKHR + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end -const VkFormatProperties2KHR = VkFormatProperties2 +struct VkVideoEndCodingInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoEndCodingFlagsKHR +end -const VkImageFormatProperties2KHR = VkImageFormatProperties2 +struct VkVideoCodingControlInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoCodingControlFlagsKHR +end -const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , const VkVideoProfileInfoKHR * pVideoProfile , VkVideoCapabilitiesKHR * pCapabilities ) +const PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Ptr{Cvoid} -const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo , uint32_t * pVideoFormatPropertyCount , VkVideoFormatPropertiesKHR * pVideoFormatProperties ) +const PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Ptr{Cvoid} -const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionKHR ) ( VkDevice device , const VkVideoSessionCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionKHR * pVideoSession ) +const PFN_vkCreateVideoSessionKHR = Ptr{Cvoid} -const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionKHR = Ptr{Cvoid} -const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetVideoSessionMemoryRequirementsKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t * pMemoryRequirementsCount , VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) +const PFN_vkGetVideoSessionMemoryRequirementsKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) -const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindVideoSessionMemoryKHR ) ( VkDevice device , VkVideoSessionKHR videoSession , uint32_t bindSessionMemoryInfoCount , const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) +const PFN_vkBindVideoSessionMemoryKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateVideoSessionParametersKHR ) ( VkDevice device , const VkVideoSessionParametersCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkVideoSessionParametersKHR * pVideoSessionParameters ) +const PFN_vkCreateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) -const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkUpdateVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) +const PFN_vkUpdateVideoSessionParametersKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) -const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyVideoSessionParametersKHR ) ( VkDevice device , VkVideoSessionParametersKHR videoSessionParameters , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyVideoSessionParametersKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) -const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoBeginCodingInfoKHR * pBeginInfo ) +const PFN_vkCmdBeginVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) -const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdEndVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoEndCodingInfoKHR * pEndCodingInfo ) +const PFN_vkCmdEndVideoCodingKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) -const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdControlVideoCodingKHR ) ( VkCommandBuffer commandBuffer , const VkVideoCodingControlInfoKHR * pCodingControlInfo ) +const PFN_vkCmdControlVideoCodingKHR = Ptr{Cvoid} -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) - ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities) + ccall((:vkGetPhysicalDeviceVideoCapabilitiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +function vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkVideoProfileInfoKHR}, Ptr{VkVideoCapabilitiesKHR}), physicalDevice, pVideoProfile, pCapabilities) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) - ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + ccall((:vkGetPhysicalDeviceVideoFormatPropertiesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +function vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceVideoFormatInfoKHR}, Ptr{UInt32}, Ptr{VkVideoFormatPropertiesKHR}), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) - ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession) + ccall((:vkCreateVideoSessionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +function vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionKHR}), device, pCreateInfo, pAllocator, pVideoSession) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) - ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator) + ccall((:vkDestroyVideoSessionKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +function vkDestroyVideoSessionKHR(device, videoSession, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionKHR, Ptr{VkAllocationCallbacks}), device, videoSession, pAllocator) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + ccall((:vkGetVideoSessionMemoryRequirementsKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +function vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, Ptr{UInt32}, Ptr{VkVideoSessionMemoryRequirementsKHR}), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) - ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + ccall((:vkBindVideoSessionMemoryKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +function vkBindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionKHR, UInt32, Ptr{VkBindVideoSessionMemoryInfoKHR}), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters) + ccall((:vkCreateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +function vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkVideoSessionParametersCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkVideoSessionParametersKHR}), device, pCreateInfo, pAllocator, pVideoSessionParameters) end -const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - -const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits - -const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags - -const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits - -const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo - -const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo - -const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo - -const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo - -const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo) + ccall((:vkUpdateVideoSessionParametersKHR, libvulkan), VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo +function vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkVideoSessionParametersUpdateInfoKHR}), device, videoSessionParameters, pUpdateInfo) +end -const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator) + ccall((:vkDestroyVideoSessionParametersKHR, libvulkan), Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) -const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} +function vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkVideoSessionParametersKHR, Ptr{VkAllocationCallbacks}), device, videoSessionParameters, pAllocator) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) -const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo) + ccall((:vkCmdBeginVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) -const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} +function vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoBeginCodingInfoKHR}), commandBuffer, pBeginInfo) +end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo) + ccall((:vkCmdEndVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +function vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoEndCodingInfoKHR}), commandBuffer, pEndCodingInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) - ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo) + ccall((:vkCmdControlVideoCodingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +function vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoCodingControlInfoKHR}), commandBuffer, pCodingControlInfo) end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +@cenum VkVideoDecodeCapabilityFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 1 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 2 + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +const VkVideoDecodeCapabilityFlagsKHR = VkFlags + +@cenum VkVideoDecodeUsageFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0 + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 1 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 2 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 4 + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags +const VkVideoDecodeUsageFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) -const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} +const VkVideoDecodeFlagsKHR = VkFlags -function vkTrimCommandPoolKHR(device, commandPool, flags) - ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeCapabilityFlagsKHR end -function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +struct VkVideoDecodeUsageInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + videoUsageHints::VkVideoDecodeUsageFlagsKHR end -const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties +struct VkVideoDecodeInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkVideoDecodeFlagsKHR + srcBuffer::VkBuffer + srcBufferOffset::VkDeviceSize + srcBufferRange::VkDeviceSize + dstPictureResource::VkVideoPictureResourceInfoKHR + pSetupReferenceSlot::Ptr{VkVideoReferenceSlotInfoKHR} + referenceSlotCount::UInt32 + pReferenceSlots::Ptr{VkVideoReferenceSlotInfoKHR} +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDecodeVideoKHR ) ( VkCommandBuffer commandBuffer , const VkVideoDecodeInfoKHR * pDecodeInfo ) +const PFN_vkCmdDecodeVideoKHR = Ptr{Cvoid} + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo) + ccall((:vkCmdDecodeVideoKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +function vkCmdDecodeVideoKHR(commandBuffer, pDecodeInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkVideoDecodeInfoKHR}), commandBuffer, pDecodeInfo) +end + +@cenum StdVideoH264ChromaFormatIdc::UInt32 begin + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ProfileIdc::UInt32 begin + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66 + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77 + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100 + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244 + STD_VIDEO_H264_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264LevelIdc::UInt32 begin + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1 + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2 + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3 + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4 + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5 + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6 + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7 + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8 + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9 + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10 + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11 + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12 + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13 + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14 + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15 + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16 + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17 + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18 + STD_VIDEO_H264_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PocType::UInt32 begin + STD_VIDEO_H264_POC_TYPE_0 = 0 + STD_VIDEO_H264_POC_TYPE_1 = 1 + STD_VIDEO_H264_POC_TYPE_2 = 2 + STD_VIDEO_H264_POC_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264AspectRatioIdc::UInt32 begin + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264WeightedBipredIdc::UInt32 begin + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 2147483647 + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264ModificationOfPicNumsIdc::UInt32 begin + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 2147483647 + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264MemMgmtControlOp::UInt32 begin + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 2147483647 + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264CabacInitIdc::UInt32 begin + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0 + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1 + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2 + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 2147483647 + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264DisableDeblockingFilterIdc::UInt32 begin + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 2147483647 + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264SliceType::UInt32 begin + STD_VIDEO_H264_SLICE_TYPE_P = 0 + STD_VIDEO_H264_SLICE_TYPE_B = 1 + STD_VIDEO_H264_SLICE_TYPE_I = 2 + STD_VIDEO_H264_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264PictureType::UInt32 begin + STD_VIDEO_H264_PICTURE_TYPE_P = 0 + STD_VIDEO_H264_PICTURE_TYPE_B = 1 + STD_VIDEO_H264_PICTURE_TYPE_I = 2 + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5 + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH264NonVclNaluType::UInt32 begin + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 2147483647 + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 2147483647 +end + +struct StdVideoH264SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :color_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :timing_info_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :fixed_frame_rate_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + return getfield(x, f) +end -const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo +function Base.getproperty(x::StdVideoH264SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH264SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, color_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, timing_info_present_flag::UInt32, fixed_frame_rate_flag::UInt32, bitstream_restriction_flag::UInt32, nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.color_description_present_flag = color_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.timing_info_present_flag = timing_info_present_flag + ptr.fixed_frame_rate_flag = fixed_frame_rate_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ref[] +end + +struct StdVideoH264HrdParameters + cpb_cnt_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + reserved1::UInt8 + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cbr_flag::NTuple{32, UInt8} + initial_cpb_removal_delay_length_minus1::UInt32 + cpb_removal_delay_length_minus1::UInt32 + dpb_output_delay_length_minus1::UInt32 + time_offset_length::UInt32 +end + +struct StdVideoH264SequenceParameterSetVui + flags::StdVideoH264SpsVuiFlags + aspect_ratio_idc::StdVideoH264AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coefficients::UInt8 + num_units_in_tick::UInt32 + time_scale::UInt32 + max_num_reorder_frames::UInt8 + max_dec_frame_buffering::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt32 + pHrdParameters::Ptr{StdVideoH264HrdParameters} +end + +struct StdVideoH264SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264SpsFlags}, f::Symbol) + f === :constraint_set0_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :constraint_set1_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constraint_set2_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :constraint_set3_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constraint_set4_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :constraint_set5_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :direct_8x8_inference_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :mb_adaptive_frame_field_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :frame_mbs_only_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :delta_pic_order_always_zero_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :gaps_in_frame_num_value_allowed_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :qpprime_y_zero_transform_bypass_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :frame_cropping_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :seq_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 15, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264SpsFlags, f::Symbol) + r = Ref{StdVideoH264SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264SpsFlags(constraint_set0_flag::UInt32, constraint_set1_flag::UInt32, constraint_set2_flag::UInt32, constraint_set3_flag::UInt32, constraint_set4_flag::UInt32, constraint_set5_flag::UInt32, direct_8x8_inference_flag::UInt32, mb_adaptive_frame_field_flag::UInt32, frame_mbs_only_flag::UInt32, delta_pic_order_always_zero_flag::UInt32, separate_colour_plane_flag::UInt32, gaps_in_frame_num_value_allowed_flag::UInt32, qpprime_y_zero_transform_bypass_flag::UInt32, frame_cropping_flag::UInt32, seq_scaling_matrix_present_flag::UInt32, vui_parameters_present_flag::UInt32) + ref = Ref{StdVideoH264SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264SpsFlags}, ref) + ptr.constraint_set0_flag = constraint_set0_flag + ptr.constraint_set1_flag = constraint_set1_flag + ptr.constraint_set2_flag = constraint_set2_flag + ptr.constraint_set3_flag = constraint_set3_flag + ptr.constraint_set4_flag = constraint_set4_flag + ptr.constraint_set5_flag = constraint_set5_flag + ptr.direct_8x8_inference_flag = direct_8x8_inference_flag + ptr.mb_adaptive_frame_field_flag = mb_adaptive_frame_field_flag + ptr.frame_mbs_only_flag = frame_mbs_only_flag + ptr.delta_pic_order_always_zero_flag = delta_pic_order_always_zero_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.gaps_in_frame_num_value_allowed_flag = gaps_in_frame_num_value_allowed_flag + ptr.qpprime_y_zero_transform_bypass_flag = qpprime_y_zero_transform_bypass_flag + ptr.frame_cropping_flag = frame_cropping_flag + ptr.seq_scaling_matrix_present_flag = seq_scaling_matrix_present_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ref[] +end + +struct StdVideoH264ScalingLists + scaling_list_present_mask::UInt16 + use_default_scaling_matrix_mask::UInt16 + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} +end + +struct StdVideoH264SequenceParameterSet + flags::StdVideoH264SpsFlags + profile_idc::StdVideoH264ProfileIdc + level_idc::StdVideoH264LevelIdc + chroma_format_idc::StdVideoH264ChromaFormatIdc + seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_frame_num_minus4::UInt8 + pic_order_cnt_type::StdVideoH264PocType + offset_for_non_ref_pic::Int32 + offset_for_top_to_bottom_field::Int32 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + num_ref_frames_in_pic_order_cnt_cycle::UInt8 + max_num_ref_frames::UInt8 + reserved1::UInt8 + pic_width_in_mbs_minus1::UInt32 + pic_height_in_map_units_minus1::UInt32 + frame_crop_left_offset::UInt32 + frame_crop_right_offset::UInt32 + frame_crop_top_offset::UInt32 + frame_crop_bottom_offset::UInt32 + reserved2::UInt32 + pOffsetForRefFrame::Ptr{Int32} + pScalingLists::Ptr{StdVideoH264ScalingLists} + pSequenceParameterSetVui::Ptr{StdVideoH264SequenceParameterSetVui} +end + +struct StdVideoH264PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH264PpsFlags}, f::Symbol) + f === :transform_8x8_mode_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :redundant_pic_cnt_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :bottom_field_pic_order_in_frame_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :entropy_coding_mode_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pic_scaling_matrix_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH264PpsFlags, f::Symbol) + r = Ref{StdVideoH264PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH264PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH264PpsFlags(transform_8x8_mode_flag::UInt32, redundant_pic_cnt_present_flag::UInt32, constrained_intra_pred_flag::UInt32, deblocking_filter_control_present_flag::UInt32, weighted_pred_flag::UInt32, bottom_field_pic_order_in_frame_present_flag::UInt32, entropy_coding_mode_flag::UInt32, pic_scaling_matrix_present_flag::UInt32) + ref = Ref{StdVideoH264PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH264PpsFlags}, ref) + ptr.transform_8x8_mode_flag = transform_8x8_mode_flag + ptr.redundant_pic_cnt_present_flag = redundant_pic_cnt_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.bottom_field_pic_order_in_frame_present_flag = bottom_field_pic_order_in_frame_present_flag + ptr.entropy_coding_mode_flag = entropy_coding_mode_flag + ptr.pic_scaling_matrix_present_flag = pic_scaling_matrix_present_flag + ref[] +end + +struct StdVideoH264PictureParameterSet + flags::StdVideoH264PpsFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + weighted_bipred_idc::StdVideoH264WeightedBipredIdc + pic_init_qp_minus26::Int8 + pic_init_qs_minus26::Int8 + chroma_qp_index_offset::Int8 + second_chroma_qp_index_offset::Int8 + pScalingLists::Ptr{StdVideoH264ScalingLists} +end + +@cenum StdVideoDecodeH264FieldOrderCount::UInt32 begin + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 2147483647 + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 2147483647 +end + +struct StdVideoDecodeH264PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol) + f === :field_pic_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :is_intra && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :is_reference && return (Ptr{UInt32}(x + 0), 4, 1) + f === :complementary_field_pair && return (Ptr{UInt32}(x + 0), 5, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264PictureInfoFlags(field_pic_flag::UInt32, is_intra::UInt32, IdrPicFlag::UInt32, bottom_field_flag::UInt32, is_reference::UInt32, complementary_field_pair::UInt32) + ref = Ref{StdVideoDecodeH264PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264PictureInfoFlags}, ref) + ptr.field_pic_flag = field_pic_flag + ptr.is_intra = is_intra + ptr.IdrPicFlag = IdrPicFlag + ptr.bottom_field_flag = bottom_field_flag + ptr.is_reference = is_reference + ptr.complementary_field_pair = complementary_field_pair + ref[] +end + +struct StdVideoDecodeH264PictureInfo + flags::StdVideoDecodeH264PictureInfoFlags + seq_parameter_set_id::UInt8 + pic_parameter_set_id::UInt8 + reserved1::UInt8 + reserved2::UInt8 + frame_num::UInt16 + idr_pic_id::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +struct StdVideoDecodeH264ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol) + f === :top_field_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :bottom_field_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :is_non_existing && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH264ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH264ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH264ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH264ReferenceInfoFlags(top_field_flag::UInt32, bottom_field_flag::UInt32, used_for_long_term_reference::UInt32, is_non_existing::UInt32) + ref = Ref{StdVideoDecodeH264ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH264ReferenceInfoFlags}, ref) + ptr.top_field_flag = top_field_flag + ptr.bottom_field_flag = bottom_field_flag + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.is_non_existing = is_non_existing + ref[] +end + +struct StdVideoDecodeH264ReferenceInfo + flags::StdVideoDecodeH264ReferenceInfoFlags + FrameNum::UInt16 + reserved::UInt16 + PicOrderCnt::NTuple{2, Int32} +end + +@cenum VkVideoDecodeH264PictureLayoutFlagBitsKHR::UInt32 begin + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 1 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 2 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkVideoDecodeH264PictureLayoutFlagsKHR = VkFlags + +struct VkVideoDecodeH264ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH264ProfileIdc + pictureLayout::VkVideoDecodeH264PictureLayoutFlagBitsKHR +end + +struct VkVideoDecodeH264CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH264LevelIdc + fieldOffsetGranularity::VkOffset2D +end + +struct VkVideoDecodeH264SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH264SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH264PictureParameterSet} +end + +struct VkVideoDecodeH264SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH264SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH264PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH264PictureInfo} + sliceCount::UInt32 + pSliceOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH264DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH264ReferenceInfo} +end + +const VkRenderingFlagsKHR = VkRenderingFlags + +const VkRenderingFlagBitsKHR = VkRenderingFlagBits + +const VkRenderingInfoKHR = VkRenderingInfo + +const VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo + +const VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo + +const VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures + +const VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo + +struct VkRenderingFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkRenderingFragmentDensityMapAttachmentInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + imageLayout::VkImageLayout +end + +struct VkAttachmentSampleCountInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + colorAttachmentCount::UInt32 + pColorAttachmentSamples::Ptr{VkSampleCountFlagBits} + depthStencilAttachmentSamples::VkSampleCountFlagBits +end + +const VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + +struct VkMultiviewPerViewAttributesInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewAttributes::VkBool32 + perViewAttributesPositionXOnly::VkBool32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderingKHR ) ( VkCommandBuffer commandBuffer , const VkRenderingInfo * pRenderingInfo ) +const PFN_vkCmdBeginRenderingKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderingKHR ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndRenderingKHR = Ptr{Cvoid} + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo) + ccall((:vkCmdBeginRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderingInfo}), commandBuffer, pRenderingInfo) +end + +function vkCmdEndRenderingKHR(commandBuffer) + ccall((:vkCmdEndRenderingKHR, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end + +function vkCmdEndRenderingKHR(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end + +const VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo + +const VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures + +const VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties + +const VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + +const VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + +const VkFormatProperties2KHR = VkFormatProperties2 + +const VkImageFormatProperties2KHR = VkImageFormatProperties2 + +const VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + +const VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + +const VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + +const VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + +const VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFeatures2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) +const PFN_vkGetPhysicalDeviceFeatures2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) +const PFN_vkGetPhysicalDeviceFormatProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) +const PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) +const PFN_vkGetPhysicalDeviceMemoryProperties2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) +const PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures) + ccall((:vkGetPhysicalDeviceFeatures2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceFeatures2}), physicalDevice, pFeatures) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties) + ccall((:vkGetPhysicalDeviceProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceProperties2}), physicalDevice, pProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties) + ccall((:vkGetPhysicalDeviceFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkFormat, Ptr{VkFormatProperties2}), physicalDevice, format, pFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceImageFormatProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceImageFormatInfo2}, Ptr{VkImageFormatProperties2}), physicalDevice, pImageFormatInfo, pImageFormatProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + ccall((:vkGetPhysicalDeviceQueueFamilyProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkQueueFamilyProperties2}), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties) + ccall((:vkGetPhysicalDeviceMemoryProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceMemoryProperties2}), physicalDevice, pMemoryProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceSparseImageFormatProperties2KHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSparseImageFormatInfo2}, Ptr{UInt32}, Ptr{VkSparseImageFormatProperties2}), physicalDevice, pFormatInfo, pPropertyCount, pProperties) +end + +const VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags + +const VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits + +const VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + +const VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits + +const VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + +const VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + +const VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + +const VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + +const VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + +const VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo + +const VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) +const PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDeviceMaskKHR ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) +const PFN_vkCmdSetDeviceMaskKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDispatchBaseKHR ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDispatchBaseKHR = Ptr{Cvoid} + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + ccall((:vkGetDeviceGroupPeerMemoryFeaturesKHR, libvulkan), Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, UInt32, UInt32, Ptr{VkPeerMemoryFeatureFlags}), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask) + ccall((:vkCmdSetDeviceMaskKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, deviceMask) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDispatchBaseKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) +end + +const VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + +# typedef void ( VKAPI_PTR * PFN_vkTrimCommandPoolKHR ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) +const PFN_vkTrimCommandPoolKHR = Ptr{Cvoid} + +function vkTrimCommandPoolKHR(device, commandPool, flags) + ccall((:vkTrimCommandPoolKHR, libvulkan), Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +function vkTrimCommandPoolKHR(device, commandPool, flags, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCommandPool, VkCommandPoolTrimFlags), device, commandPool, flags) +end + +const VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties + +const VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) +const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +end + +const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags + +const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits + +const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + +const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits + +const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + +const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + +const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + +const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + +const VkExternalBufferPropertiesKHR = VkExternalBufferProperties + +const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) +const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +end + +const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + +const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + +const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + +struct VkImportMemoryFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + fd::Cint +end + +struct VkMemoryFdPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 +end + +struct VkMemoryGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) +const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) + ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +end + +const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags + +const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits + +const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + +const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits + +const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + +const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) +const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) + ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) +end + +const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags + +const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits + +const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo + +struct VkImportSemaphoreFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + flags::VkSemaphoreImportFlags + handleType::VkExternalSemaphoreHandleTypeFlagBits + fd::Cint +end + +struct VkSemaphoreGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + semaphore::VkSemaphore + handleType::VkExternalSemaphoreHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) +const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) + ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +struct VkPhysicalDevicePushDescriptorPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxPushDescriptors::UInt32 +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) +const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) +const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +end + +const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features + +const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + +struct VkRectLayerKHR + offset::VkOffset2D + extent::VkExtent2D + layer::UInt32 +end + +struct VkPresentRegionKHR + rectangleCount::UInt32 + pRectangles::Ptr{VkRectLayerKHR} +end + +struct VkPresentRegionsKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pRegions::Ptr{VkPresentRegionKHR} +end + +const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate + +const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType + +const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + +const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry + +const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) +const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) +const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) + ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) + ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) +end + +const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures + +const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo + +const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo + +const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo + +const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 + +const VkAttachmentDescription2KHR = VkAttachmentDescription2 + +const VkAttachmentReference2KHR = VkAttachmentReference2 + +const VkSubpassDescription2KHR = VkSubpassDescription2 + +const VkSubpassDependency2KHR = VkSubpassDependency2 + +const VkSubpassBeginInfoKHR = VkSubpassBeginInfo + +const VkSubpassEndInfoKHR = VkSubpassEndInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) +const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) +const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) +const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) + ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) + ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +end + +struct VkSharedPresentSurfaceCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sharedPresentSupportedUsageFlags::VkImageUsageFlags +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) +const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} + +function vkGetSwapchainStatusKHR(device, swapchain) + ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +function vkGetSwapchainStatusKHR(device, swapchain, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +end + +const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags + +const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits + +const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + +const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits + +const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + +const VkExternalFencePropertiesKHR = VkExternalFenceProperties + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) +const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +end + +const VkFenceImportFlagsKHR = VkFenceImportFlags + +const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits + +const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + +struct VkImportFenceFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + flags::VkFenceImportFlags + handleType::VkExternalFenceHandleTypeFlagBits + fd::Cint +end + +struct VkFenceGetFdInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fence::VkFence + handleType::VkExternalFenceHandleTypeFlagBits +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) +const PFN_vkImportFenceFdKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) +const PFN_vkGetFenceFdKHR = Ptr{Cvoid} + +function vkImportFenceFdKHR(device, pImportFenceFdInfo) + ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd) + ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +end + +@cenum VkPerformanceCounterUnitKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterScopeKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 + VK_QUERY_SCOPE_COMMAND_KHR = 2 + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterStorageKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 +end + +@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkPerformanceCounterDescriptionFlagsKHR = VkFlags + +@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end + +const VkAcquireProfilingLockFlagsKHR = VkFlags + +struct VkPhysicalDevicePerformanceQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCounterQueryPools::VkBool32 + performanceCounterMultipleQueryPools::VkBool32 +end + +struct VkPhysicalDevicePerformanceQueryPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + allowCommandBufferQueryCopies::VkBool32 +end + +struct VkPerformanceCounterKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + unit::VkPerformanceCounterUnitKHR + scope::VkPerformanceCounterScopeKHR + storage::VkPerformanceCounterStorageKHR + uuid::NTuple{16, UInt8} +end + +struct VkPerformanceCounterDescriptionKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPerformanceCounterDescriptionFlagsKHR + name::NTuple{256, Cchar} + category::NTuple{256, Cchar} + description::NTuple{256, Cchar} +end + +struct VkQueryPoolPerformanceCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + queueFamilyIndex::UInt32 + counterIndexCount::UInt32 + pCounterIndices::Ptr{UInt32} +end + +struct VkPerformanceCounterResultKHR + data::NTuple{8, UInt8} +end + +function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) + f === :int32 && return Ptr{Int32}(x + 0) + f === :int64 && return Ptr{Int64}(x + 0) + f === :uint32 && return Ptr{UInt32}(x + 0) + f === :uint64 && return Ptr{UInt64}(x + 0) + f === :float32 && return Ptr{Cfloat}(x + 0) + f === :float64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) + r = Ref{VkPerformanceCounterResultKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} + +function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) + ref = Ref{VkPerformanceCounterResultKHR}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) + if val isa Int32 + ptr.int32 = val + elseif val isa Int64 + ptr.int64 = val + elseif val isa UInt32 + ptr.uint32 = val + elseif val isa UInt64 + ptr.uint64 = val + elseif val isa Cfloat + ptr.float32 = val + elseif val isa Cdouble + ptr.float64 = val + end + ref[] +end + +struct VkAcquireProfilingLockInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkAcquireProfilingLockFlagsKHR + timeout::UInt64 +end + +struct VkPerformanceQuerySubmitInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + counterPassIndex::UInt32 +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) +const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) +const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) +const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) +const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +end + +function vkAcquireProfilingLockKHR(device, pInfo) + ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkAcquireProfilingLockKHR(device, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +end + +function vkReleaseProfilingLockKHR(device) + ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +end + +function vkReleaseProfilingLockKHR(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) +end + +const VkPointClippingBehaviorKHR = VkPointClippingBehavior + +const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin + +const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties + +const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo + +const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference + +const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo + +const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo + +struct VkPhysicalDeviceSurfaceInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surface::VkSurfaceKHR +end + +struct VkSurfaceCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceCapabilities::VkSurfaceCapabilitiesKHR +end + +struct VkSurfaceFormat2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + surfaceFormat::VkSurfaceFormatKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) +const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +end + +const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + +struct VkDisplayProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayProperties::VkDisplayPropertiesKHR +end + +struct VkDisplayPlaneProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPlaneProperties::VkDisplayPlanePropertiesKHR +end + +struct VkDisplayModeProperties2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + displayModeProperties::VkDisplayModePropertiesKHR +end + +struct VkDisplayPlaneInfo2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + mode::VkDisplayModeKHR + planeIndex::UInt32 +end + +struct VkDisplayPlaneCapabilities2KHR + sType::VkStructureType + pNext::Ptr{Cvoid} + capabilities::VkDisplayPlaneCapabilitiesKHR +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) +const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) +const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) +const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) + ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) + ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +end + +const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + +const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + +const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + +const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + +const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + +const VkMemoryRequirements2KHR = VkMemoryRequirements2 + +const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + +# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +end + +const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo + +const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion + +const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion + +const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange + +const VkChromaLocationKHR = VkChromaLocation + +const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + +const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + +const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + +const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + +const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + +const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) +const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) + ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) + ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +end + +const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + +const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) +const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) +const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) + ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +end + +const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties + +const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport + +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) +const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) + ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +end + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end + +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + +const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + +const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + +struct VkPhysicalDeviceShaderClockFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupClock::VkBool32 + shaderDeviceClock::VkBool32 +end + +@cenum StdVideoH265ChromaFormatIdc::UInt32 begin + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 2147483647 + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265ProfileIdc::UInt32 begin + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1 + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2 + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3 + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4 + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9 + STD_VIDEO_H265_PROFILE_IDC_INVALID = 2147483647 + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265LevelIdc::UInt32 begin + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0 + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1 + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2 + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3 + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4 + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5 + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6 + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7 + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8 + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9 + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10 + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11 + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12 + STD_VIDEO_H265_LEVEL_IDC_INVALID = 2147483647 + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265SliceType::UInt32 begin + STD_VIDEO_H265_SLICE_TYPE_B = 0 + STD_VIDEO_H265_SLICE_TYPE_P = 1 + STD_VIDEO_H265_SLICE_TYPE_I = 2 + STD_VIDEO_H265_SLICE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265PictureType::UInt32 begin + STD_VIDEO_H265_PICTURE_TYPE_P = 0 + STD_VIDEO_H265_PICTURE_TYPE_B = 1 + STD_VIDEO_H265_PICTURE_TYPE_I = 2 + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3 + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 2147483647 + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 2147483647 +end + +@cenum StdVideoH265AspectRatioIdc::UInt32 begin + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0 + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1 + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2 + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3 + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4 + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5 + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6 + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7 + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8 + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9 + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10 + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11 + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12 + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13 + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14 + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15 + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16 + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255 + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 2147483647 + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 2147483647 +end + +struct StdVideoH265DecPicBufMgr + max_latency_increase_plus1::NTuple{7, UInt32} + max_dec_pic_buffering_minus1::NTuple{7, UInt8} + max_num_reorder_pics::NTuple{7, UInt8} +end + +struct StdVideoH265SubLayerHrdParameters + bit_rate_value_minus1::NTuple{32, UInt32} + cpb_size_value_minus1::NTuple{32, UInt32} + cpb_size_du_value_minus1::NTuple{32, UInt32} + bit_rate_du_value_minus1::NTuple{32, UInt32} + cbr_flag::UInt32 +end + +struct StdVideoH265HrdFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265HrdFlags}, f::Symbol) + f === :nal_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vcl_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sub_pic_hrd_params_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sub_pic_cpb_params_in_pic_timing_sei_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :fixed_pic_rate_general_flag && return (Ptr{UInt32}(x + 0), 4, 8) + f === :fixed_pic_rate_within_cvs_flag && return (Ptr{UInt32}(x + 0), 12, 8) + f === :low_delay_hrd_flag && return (Ptr{UInt32}(x + 0), 20, 8) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265HrdFlags, f::Symbol) + r = Ref{StdVideoH265HrdFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265HrdFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265HrdFlags(nal_hrd_parameters_present_flag::UInt32, vcl_hrd_parameters_present_flag::UInt32, sub_pic_hrd_params_present_flag::UInt32, sub_pic_cpb_params_in_pic_timing_sei_flag::UInt32, fixed_pic_rate_general_flag::UInt32, fixed_pic_rate_within_cvs_flag::UInt32, low_delay_hrd_flag::UInt32) + ref = Ref{StdVideoH265HrdFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265HrdFlags}, ref) + ptr.nal_hrd_parameters_present_flag = nal_hrd_parameters_present_flag + ptr.vcl_hrd_parameters_present_flag = vcl_hrd_parameters_present_flag + ptr.sub_pic_hrd_params_present_flag = sub_pic_hrd_params_present_flag + ptr.sub_pic_cpb_params_in_pic_timing_sei_flag = sub_pic_cpb_params_in_pic_timing_sei_flag + ptr.fixed_pic_rate_general_flag = fixed_pic_rate_general_flag + ptr.fixed_pic_rate_within_cvs_flag = fixed_pic_rate_within_cvs_flag + ptr.low_delay_hrd_flag = low_delay_hrd_flag + ref[] +end + +struct StdVideoH265HrdParameters + flags::StdVideoH265HrdFlags + tick_divisor_minus2::UInt8 + du_cpb_removal_delay_increment_length_minus1::UInt8 + dpb_output_delay_du_length_minus1::UInt8 + bit_rate_scale::UInt8 + cpb_size_scale::UInt8 + cpb_size_du_scale::UInt8 + initial_cpb_removal_delay_length_minus1::UInt8 + au_cpb_removal_delay_length_minus1::UInt8 + dpb_output_delay_length_minus1::UInt8 + cpb_cnt_minus1::NTuple{7, UInt8} + elemental_duration_in_tc_minus1::NTuple{7, UInt16} + reserved::NTuple{3, UInt16} + pSubLayerHrdParametersNal::Ptr{StdVideoH265SubLayerHrdParameters} + pSubLayerHrdParametersVcl::Ptr{StdVideoH265SubLayerHrdParameters} +end + +struct StdVideoH265VpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265VpsFlags}, f::Symbol) + f === :vps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :vps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :vps_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :vps_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265VpsFlags, f::Symbol) + r = Ref{StdVideoH265VpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265VpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265VpsFlags(vps_temporal_id_nesting_flag::UInt32, vps_sub_layer_ordering_info_present_flag::UInt32, vps_timing_info_present_flag::UInt32, vps_poc_proportional_to_timing_flag::UInt32) + ref = Ref{StdVideoH265VpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265VpsFlags}, ref) + ptr.vps_temporal_id_nesting_flag = vps_temporal_id_nesting_flag + ptr.vps_sub_layer_ordering_info_present_flag = vps_sub_layer_ordering_info_present_flag + ptr.vps_timing_info_present_flag = vps_timing_info_present_flag + ptr.vps_poc_proportional_to_timing_flag = vps_poc_proportional_to_timing_flag + ref[] +end + +struct StdVideoH265ProfileTierLevelFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol) + f === :general_tier_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :general_progressive_source_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :general_interlaced_source_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :general_non_packed_constraint_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :general_frame_only_constraint_flag && return (Ptr{UInt32}(x + 0), 4, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ProfileTierLevelFlags, f::Symbol) + r = Ref{StdVideoH265ProfileTierLevelFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ProfileTierLevelFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ProfileTierLevelFlags(general_tier_flag::UInt32, general_progressive_source_flag::UInt32, general_interlaced_source_flag::UInt32, general_non_packed_constraint_flag::UInt32, general_frame_only_constraint_flag::UInt32) + ref = Ref{StdVideoH265ProfileTierLevelFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ProfileTierLevelFlags}, ref) + ptr.general_tier_flag = general_tier_flag + ptr.general_progressive_source_flag = general_progressive_source_flag + ptr.general_interlaced_source_flag = general_interlaced_source_flag + ptr.general_non_packed_constraint_flag = general_non_packed_constraint_flag + ptr.general_frame_only_constraint_flag = general_frame_only_constraint_flag + ref[] +end + +struct StdVideoH265ProfileTierLevel + flags::StdVideoH265ProfileTierLevelFlags + general_profile_idc::StdVideoH265ProfileIdc + general_level_idc::StdVideoH265LevelIdc +end + +struct StdVideoH265VideoParameterSet + flags::StdVideoH265VpsFlags + vps_video_parameter_set_id::UInt8 + vps_max_sub_layers_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + vps_num_units_in_tick::UInt32 + vps_time_scale::UInt32 + vps_num_ticks_poc_diff_one_minus1::UInt32 + reserved3::UInt32 + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pHrdParameters::Ptr{StdVideoH265HrdParameters} + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} +end + +struct StdVideoH265ScalingLists + ScalingList4x4::NTuple{6, NTuple{16, UInt8}} + ScalingList8x8::NTuple{6, NTuple{64, UInt8}} + ScalingList16x16::NTuple{6, NTuple{64, UInt8}} + ScalingList32x32::NTuple{2, NTuple{64, UInt8}} + ScalingListDCCoef16x16::NTuple{6, UInt8} + ScalingListDCCoef32x32::NTuple{2, UInt8} +end + +struct StdVideoH265SpsVuiFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol) + f === :aspect_ratio_info_present_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :overscan_info_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :overscan_appropriate_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :video_signal_type_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :video_full_range_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :colour_description_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :chroma_loc_info_present_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :neutral_chroma_indication_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :field_seq_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :frame_field_info_present_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :default_display_window_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :vui_timing_info_present_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :vui_poc_proportional_to_timing_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_hrd_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :bitstream_restriction_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :tiles_fixed_structure_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :motion_vectors_over_pic_boundaries_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :restricted_ref_pic_lists_flag && return (Ptr{UInt32}(x + 0), 17, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsVuiFlags, f::Symbol) + r = Ref{StdVideoH265SpsVuiFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsVuiFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsVuiFlags(aspect_ratio_info_present_flag::UInt32, overscan_info_present_flag::UInt32, overscan_appropriate_flag::UInt32, video_signal_type_present_flag::UInt32, video_full_range_flag::UInt32, colour_description_present_flag::UInt32, chroma_loc_info_present_flag::UInt32, neutral_chroma_indication_flag::UInt32, field_seq_flag::UInt32, frame_field_info_present_flag::UInt32, default_display_window_flag::UInt32, vui_timing_info_present_flag::UInt32, vui_poc_proportional_to_timing_flag::UInt32, vui_hrd_parameters_present_flag::UInt32, bitstream_restriction_flag::UInt32, tiles_fixed_structure_flag::UInt32, motion_vectors_over_pic_boundaries_flag::UInt32, restricted_ref_pic_lists_flag::UInt32) + ref = Ref{StdVideoH265SpsVuiFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsVuiFlags}, ref) + ptr.aspect_ratio_info_present_flag = aspect_ratio_info_present_flag + ptr.overscan_info_present_flag = overscan_info_present_flag + ptr.overscan_appropriate_flag = overscan_appropriate_flag + ptr.video_signal_type_present_flag = video_signal_type_present_flag + ptr.video_full_range_flag = video_full_range_flag + ptr.colour_description_present_flag = colour_description_present_flag + ptr.chroma_loc_info_present_flag = chroma_loc_info_present_flag + ptr.neutral_chroma_indication_flag = neutral_chroma_indication_flag + ptr.field_seq_flag = field_seq_flag + ptr.frame_field_info_present_flag = frame_field_info_present_flag + ptr.default_display_window_flag = default_display_window_flag + ptr.vui_timing_info_present_flag = vui_timing_info_present_flag + ptr.vui_poc_proportional_to_timing_flag = vui_poc_proportional_to_timing_flag + ptr.vui_hrd_parameters_present_flag = vui_hrd_parameters_present_flag + ptr.bitstream_restriction_flag = bitstream_restriction_flag + ptr.tiles_fixed_structure_flag = tiles_fixed_structure_flag + ptr.motion_vectors_over_pic_boundaries_flag = motion_vectors_over_pic_boundaries_flag + ptr.restricted_ref_pic_lists_flag = restricted_ref_pic_lists_flag + ref[] +end + +struct StdVideoH265SequenceParameterSetVui + flags::StdVideoH265SpsVuiFlags + aspect_ratio_idc::StdVideoH265AspectRatioIdc + sar_width::UInt16 + sar_height::UInt16 + video_format::UInt8 + colour_primaries::UInt8 + transfer_characteristics::UInt8 + matrix_coeffs::UInt8 + chroma_sample_loc_type_top_field::UInt8 + chroma_sample_loc_type_bottom_field::UInt8 + reserved1::UInt8 + reserved2::UInt8 + def_disp_win_left_offset::UInt16 + def_disp_win_right_offset::UInt16 + def_disp_win_top_offset::UInt16 + def_disp_win_bottom_offset::UInt16 + vui_num_units_in_tick::UInt32 + vui_time_scale::UInt32 + vui_num_ticks_poc_diff_one_minus1::UInt32 + min_spatial_segmentation_idc::UInt16 + reserved3::UInt16 + max_bytes_per_pic_denom::UInt8 + max_bits_per_min_cu_denom::UInt8 + log2_max_mv_length_horizontal::UInt8 + log2_max_mv_length_vertical::UInt8 + pHrdParameters::Ptr{StdVideoH265HrdParameters} +end + +struct StdVideoH265PredictorPaletteEntries + PredictorPaletteEntries::NTuple{3, NTuple{128, UInt16}} +end + +struct StdVideoH265SpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265SpsFlags}, f::Symbol) + f === :sps_temporal_id_nesting_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :separate_colour_plane_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :conformance_window_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :sps_sub_layer_ordering_info_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :scaling_list_enabled_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :sps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :amp_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :sample_adaptive_offset_enabled_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :pcm_enabled_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :pcm_loop_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :long_term_ref_pics_present_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :sps_temporal_mvp_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :strong_intra_smoothing_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :vui_parameters_present_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :sps_extension_present_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :sps_range_extension_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :transform_skip_rotation_enabled_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :transform_skip_context_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :implicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :explicit_rdpcm_enabled_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :extended_precision_processing_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :intra_smoothing_disabled_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :high_precision_offsets_enabled_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :persistent_rice_adaptation_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :cabac_bypass_alignment_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :sps_scc_extension_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :sps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :palette_mode_enabled_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :sps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :intra_boundary_filtering_disabled_flag && return (Ptr{UInt32}(x + 0), 29, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265SpsFlags, f::Symbol) + r = Ref{StdVideoH265SpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265SpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265SpsFlags(sps_temporal_id_nesting_flag::UInt32, separate_colour_plane_flag::UInt32, conformance_window_flag::UInt32, sps_sub_layer_ordering_info_present_flag::UInt32, scaling_list_enabled_flag::UInt32, sps_scaling_list_data_present_flag::UInt32, amp_enabled_flag::UInt32, sample_adaptive_offset_enabled_flag::UInt32, pcm_enabled_flag::UInt32, pcm_loop_filter_disabled_flag::UInt32, long_term_ref_pics_present_flag::UInt32, sps_temporal_mvp_enabled_flag::UInt32, strong_intra_smoothing_enabled_flag::UInt32, vui_parameters_present_flag::UInt32, sps_extension_present_flag::UInt32, sps_range_extension_flag::UInt32, transform_skip_rotation_enabled_flag::UInt32, transform_skip_context_enabled_flag::UInt32, implicit_rdpcm_enabled_flag::UInt32, explicit_rdpcm_enabled_flag::UInt32, extended_precision_processing_flag::UInt32, intra_smoothing_disabled_flag::UInt32, high_precision_offsets_enabled_flag::UInt32, persistent_rice_adaptation_enabled_flag::UInt32, cabac_bypass_alignment_enabled_flag::UInt32, sps_scc_extension_flag::UInt32, sps_curr_pic_ref_enabled_flag::UInt32, palette_mode_enabled_flag::UInt32, sps_palette_predictor_initializers_present_flag::UInt32, intra_boundary_filtering_disabled_flag::UInt32) + ref = Ref{StdVideoH265SpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265SpsFlags}, ref) + ptr.sps_temporal_id_nesting_flag = sps_temporal_id_nesting_flag + ptr.separate_colour_plane_flag = separate_colour_plane_flag + ptr.conformance_window_flag = conformance_window_flag + ptr.sps_sub_layer_ordering_info_present_flag = sps_sub_layer_ordering_info_present_flag + ptr.scaling_list_enabled_flag = scaling_list_enabled_flag + ptr.sps_scaling_list_data_present_flag = sps_scaling_list_data_present_flag + ptr.amp_enabled_flag = amp_enabled_flag + ptr.sample_adaptive_offset_enabled_flag = sample_adaptive_offset_enabled_flag + ptr.pcm_enabled_flag = pcm_enabled_flag + ptr.pcm_loop_filter_disabled_flag = pcm_loop_filter_disabled_flag + ptr.long_term_ref_pics_present_flag = long_term_ref_pics_present_flag + ptr.sps_temporal_mvp_enabled_flag = sps_temporal_mvp_enabled_flag + ptr.strong_intra_smoothing_enabled_flag = strong_intra_smoothing_enabled_flag + ptr.vui_parameters_present_flag = vui_parameters_present_flag + ptr.sps_extension_present_flag = sps_extension_present_flag + ptr.sps_range_extension_flag = sps_range_extension_flag + ptr.transform_skip_rotation_enabled_flag = transform_skip_rotation_enabled_flag + ptr.transform_skip_context_enabled_flag = transform_skip_context_enabled_flag + ptr.implicit_rdpcm_enabled_flag = implicit_rdpcm_enabled_flag + ptr.explicit_rdpcm_enabled_flag = explicit_rdpcm_enabled_flag + ptr.extended_precision_processing_flag = extended_precision_processing_flag + ptr.intra_smoothing_disabled_flag = intra_smoothing_disabled_flag + ptr.high_precision_offsets_enabled_flag = high_precision_offsets_enabled_flag + ptr.persistent_rice_adaptation_enabled_flag = persistent_rice_adaptation_enabled_flag + ptr.cabac_bypass_alignment_enabled_flag = cabac_bypass_alignment_enabled_flag + ptr.sps_scc_extension_flag = sps_scc_extension_flag + ptr.sps_curr_pic_ref_enabled_flag = sps_curr_pic_ref_enabled_flag + ptr.palette_mode_enabled_flag = palette_mode_enabled_flag + ptr.sps_palette_predictor_initializers_present_flag = sps_palette_predictor_initializers_present_flag + ptr.intra_boundary_filtering_disabled_flag = intra_boundary_filtering_disabled_flag + ref[] +end + +struct StdVideoH265ShortTermRefPicSetFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol) + f === :inter_ref_pic_set_prediction_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :delta_rps_sign && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265ShortTermRefPicSetFlags, f::Symbol) + r = Ref{StdVideoH265ShortTermRefPicSetFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265ShortTermRefPicSetFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265ShortTermRefPicSetFlags(inter_ref_pic_set_prediction_flag::UInt32, delta_rps_sign::UInt32) + ref = Ref{StdVideoH265ShortTermRefPicSetFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265ShortTermRefPicSetFlags}, ref) + ptr.inter_ref_pic_set_prediction_flag = inter_ref_pic_set_prediction_flag + ptr.delta_rps_sign = delta_rps_sign + ref[] +end + +struct StdVideoH265ShortTermRefPicSet + flags::StdVideoH265ShortTermRefPicSetFlags + delta_idx_minus1::UInt32 + use_delta_flag::UInt16 + abs_delta_rps_minus1::UInt16 + used_by_curr_pic_flag::UInt16 + used_by_curr_pic_s0_flag::UInt16 + used_by_curr_pic_s1_flag::UInt16 + reserved1::UInt16 + reserved2::UInt8 + reserved3::UInt8 + num_negative_pics::UInt8 + num_positive_pics::UInt8 + delta_poc_s0_minus1::NTuple{16, UInt16} + delta_poc_s1_minus1::NTuple{16, UInt16} +end + +struct StdVideoH265LongTermRefPicsSps + used_by_curr_pic_lt_sps_flag::UInt32 + lt_ref_pic_poc_lsb_sps::NTuple{32, UInt32} +end + +struct StdVideoH265SequenceParameterSet + flags::StdVideoH265SpsFlags + chroma_format_idc::StdVideoH265ChromaFormatIdc + pic_width_in_luma_samples::UInt32 + pic_height_in_luma_samples::UInt32 + sps_video_parameter_set_id::UInt8 + sps_max_sub_layers_minus1::UInt8 + sps_seq_parameter_set_id::UInt8 + bit_depth_luma_minus8::UInt8 + bit_depth_chroma_minus8::UInt8 + log2_max_pic_order_cnt_lsb_minus4::UInt8 + log2_min_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_luma_coding_block_size::UInt8 + log2_min_luma_transform_block_size_minus2::UInt8 + log2_diff_max_min_luma_transform_block_size::UInt8 + max_transform_hierarchy_depth_inter::UInt8 + max_transform_hierarchy_depth_intra::UInt8 + num_short_term_ref_pic_sets::UInt8 + num_long_term_ref_pics_sps::UInt8 + pcm_sample_bit_depth_luma_minus1::UInt8 + pcm_sample_bit_depth_chroma_minus1::UInt8 + log2_min_pcm_luma_coding_block_size_minus3::UInt8 + log2_diff_max_min_pcm_luma_coding_block_size::UInt8 + reserved1::UInt8 + reserved2::UInt8 + palette_max_size::UInt8 + delta_palette_max_predictor_size::UInt8 + motion_vector_resolution_control_idc::UInt8 + sps_num_palette_predictor_initializers_minus1::UInt8 + conf_win_left_offset::UInt32 + conf_win_right_offset::UInt32 + conf_win_top_offset::UInt32 + conf_win_bottom_offset::UInt32 + pProfileTierLevel::Ptr{StdVideoH265ProfileTierLevel} + pDecPicBufMgr::Ptr{StdVideoH265DecPicBufMgr} + pScalingLists::Ptr{StdVideoH265ScalingLists} + pShortTermRefPicSet::Ptr{StdVideoH265ShortTermRefPicSet} + pLongTermRefPicsSps::Ptr{StdVideoH265LongTermRefPicsSps} + pSequenceParameterSetVui::Ptr{StdVideoH265SequenceParameterSetVui} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoH265PpsFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoH265PpsFlags}, f::Symbol) + f === :dependent_slice_segments_enabled_flag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :output_flag_present_flag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :sign_data_hiding_enabled_flag && return (Ptr{UInt32}(x + 0), 2, 1) + f === :cabac_init_present_flag && return (Ptr{UInt32}(x + 0), 3, 1) + f === :constrained_intra_pred_flag && return (Ptr{UInt32}(x + 0), 4, 1) + f === :transform_skip_enabled_flag && return (Ptr{UInt32}(x + 0), 5, 1) + f === :cu_qp_delta_enabled_flag && return (Ptr{UInt32}(x + 0), 6, 1) + f === :pps_slice_chroma_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 7, 1) + f === :weighted_pred_flag && return (Ptr{UInt32}(x + 0), 8, 1) + f === :weighted_bipred_flag && return (Ptr{UInt32}(x + 0), 9, 1) + f === :transquant_bypass_enabled_flag && return (Ptr{UInt32}(x + 0), 10, 1) + f === :tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 11, 1) + f === :entropy_coding_sync_enabled_flag && return (Ptr{UInt32}(x + 0), 12, 1) + f === :uniform_spacing_flag && return (Ptr{UInt32}(x + 0), 13, 1) + f === :loop_filter_across_tiles_enabled_flag && return (Ptr{UInt32}(x + 0), 14, 1) + f === :pps_loop_filter_across_slices_enabled_flag && return (Ptr{UInt32}(x + 0), 15, 1) + f === :deblocking_filter_control_present_flag && return (Ptr{UInt32}(x + 0), 16, 1) + f === :deblocking_filter_override_enabled_flag && return (Ptr{UInt32}(x + 0), 17, 1) + f === :pps_deblocking_filter_disabled_flag && return (Ptr{UInt32}(x + 0), 18, 1) + f === :pps_scaling_list_data_present_flag && return (Ptr{UInt32}(x + 0), 19, 1) + f === :lists_modification_present_flag && return (Ptr{UInt32}(x + 0), 20, 1) + f === :slice_segment_header_extension_present_flag && return (Ptr{UInt32}(x + 0), 21, 1) + f === :pps_extension_present_flag && return (Ptr{UInt32}(x + 0), 22, 1) + f === :cross_component_prediction_enabled_flag && return (Ptr{UInt32}(x + 0), 23, 1) + f === :chroma_qp_offset_list_enabled_flag && return (Ptr{UInt32}(x + 0), 24, 1) + f === :pps_curr_pic_ref_enabled_flag && return (Ptr{UInt32}(x + 0), 25, 1) + f === :residual_adaptive_colour_transform_enabled_flag && return (Ptr{UInt32}(x + 0), 26, 1) + f === :pps_slice_act_qp_offsets_present_flag && return (Ptr{UInt32}(x + 0), 27, 1) + f === :pps_palette_predictor_initializers_present_flag && return (Ptr{UInt32}(x + 0), 28, 1) + f === :monochrome_palette_flag && return (Ptr{UInt32}(x + 0), 29, 1) + f === :pps_range_extension_flag && return (Ptr{UInt32}(x + 0), 30, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoH265PpsFlags, f::Symbol) + r = Ref{StdVideoH265PpsFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoH265PpsFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoH265PpsFlags(dependent_slice_segments_enabled_flag::UInt32, output_flag_present_flag::UInt32, sign_data_hiding_enabled_flag::UInt32, cabac_init_present_flag::UInt32, constrained_intra_pred_flag::UInt32, transform_skip_enabled_flag::UInt32, cu_qp_delta_enabled_flag::UInt32, pps_slice_chroma_qp_offsets_present_flag::UInt32, weighted_pred_flag::UInt32, weighted_bipred_flag::UInt32, transquant_bypass_enabled_flag::UInt32, tiles_enabled_flag::UInt32, entropy_coding_sync_enabled_flag::UInt32, uniform_spacing_flag::UInt32, loop_filter_across_tiles_enabled_flag::UInt32, pps_loop_filter_across_slices_enabled_flag::UInt32, deblocking_filter_control_present_flag::UInt32, deblocking_filter_override_enabled_flag::UInt32, pps_deblocking_filter_disabled_flag::UInt32, pps_scaling_list_data_present_flag::UInt32, lists_modification_present_flag::UInt32, slice_segment_header_extension_present_flag::UInt32, pps_extension_present_flag::UInt32, cross_component_prediction_enabled_flag::UInt32, chroma_qp_offset_list_enabled_flag::UInt32, pps_curr_pic_ref_enabled_flag::UInt32, residual_adaptive_colour_transform_enabled_flag::UInt32, pps_slice_act_qp_offsets_present_flag::UInt32, pps_palette_predictor_initializers_present_flag::UInt32, monochrome_palette_flag::UInt32, pps_range_extension_flag::UInt32) + ref = Ref{StdVideoH265PpsFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoH265PpsFlags}, ref) + ptr.dependent_slice_segments_enabled_flag = dependent_slice_segments_enabled_flag + ptr.output_flag_present_flag = output_flag_present_flag + ptr.sign_data_hiding_enabled_flag = sign_data_hiding_enabled_flag + ptr.cabac_init_present_flag = cabac_init_present_flag + ptr.constrained_intra_pred_flag = constrained_intra_pred_flag + ptr.transform_skip_enabled_flag = transform_skip_enabled_flag + ptr.cu_qp_delta_enabled_flag = cu_qp_delta_enabled_flag + ptr.pps_slice_chroma_qp_offsets_present_flag = pps_slice_chroma_qp_offsets_present_flag + ptr.weighted_pred_flag = weighted_pred_flag + ptr.weighted_bipred_flag = weighted_bipred_flag + ptr.transquant_bypass_enabled_flag = transquant_bypass_enabled_flag + ptr.tiles_enabled_flag = tiles_enabled_flag + ptr.entropy_coding_sync_enabled_flag = entropy_coding_sync_enabled_flag + ptr.uniform_spacing_flag = uniform_spacing_flag + ptr.loop_filter_across_tiles_enabled_flag = loop_filter_across_tiles_enabled_flag + ptr.pps_loop_filter_across_slices_enabled_flag = pps_loop_filter_across_slices_enabled_flag + ptr.deblocking_filter_control_present_flag = deblocking_filter_control_present_flag + ptr.deblocking_filter_override_enabled_flag = deblocking_filter_override_enabled_flag + ptr.pps_deblocking_filter_disabled_flag = pps_deblocking_filter_disabled_flag + ptr.pps_scaling_list_data_present_flag = pps_scaling_list_data_present_flag + ptr.lists_modification_present_flag = lists_modification_present_flag + ptr.slice_segment_header_extension_present_flag = slice_segment_header_extension_present_flag + ptr.pps_extension_present_flag = pps_extension_present_flag + ptr.cross_component_prediction_enabled_flag = cross_component_prediction_enabled_flag + ptr.chroma_qp_offset_list_enabled_flag = chroma_qp_offset_list_enabled_flag + ptr.pps_curr_pic_ref_enabled_flag = pps_curr_pic_ref_enabled_flag + ptr.residual_adaptive_colour_transform_enabled_flag = residual_adaptive_colour_transform_enabled_flag + ptr.pps_slice_act_qp_offsets_present_flag = pps_slice_act_qp_offsets_present_flag + ptr.pps_palette_predictor_initializers_present_flag = pps_palette_predictor_initializers_present_flag + ptr.monochrome_palette_flag = monochrome_palette_flag + ptr.pps_range_extension_flag = pps_range_extension_flag + ref[] +end + +struct StdVideoH265PictureParameterSet + flags::StdVideoH265PpsFlags + pps_pic_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + sps_video_parameter_set_id::UInt8 + num_extra_slice_header_bits::UInt8 + num_ref_idx_l0_default_active_minus1::UInt8 + num_ref_idx_l1_default_active_minus1::UInt8 + init_qp_minus26::Int8 + diff_cu_qp_delta_depth::UInt8 + pps_cb_qp_offset::Int8 + pps_cr_qp_offset::Int8 + pps_beta_offset_div2::Int8 + pps_tc_offset_div2::Int8 + log2_parallel_merge_level_minus2::UInt8 + log2_max_transform_skip_block_size_minus2::UInt8 + diff_cu_chroma_qp_offset_depth::UInt8 + chroma_qp_offset_list_len_minus1::UInt8 + cb_qp_offset_list::NTuple{6, Int8} + cr_qp_offset_list::NTuple{6, Int8} + log2_sao_offset_scale_luma::UInt8 + log2_sao_offset_scale_chroma::UInt8 + pps_act_y_qp_offset_plus5::Int8 + pps_act_cb_qp_offset_plus5::Int8 + pps_act_cr_qp_offset_plus3::Int8 + pps_num_palette_predictor_initializers::UInt8 + luma_bit_depth_entry_minus8::UInt8 + chroma_bit_depth_entry_minus8::UInt8 + num_tile_columns_minus1::UInt8 + num_tile_rows_minus1::UInt8 + reserved1::UInt8 + reserved2::UInt8 + column_width_minus1::NTuple{19, UInt16} + row_height_minus1::NTuple{21, UInt16} + reserved3::UInt32 + pScalingLists::Ptr{StdVideoH265ScalingLists} + pPredictorPaletteEntries::Ptr{StdVideoH265PredictorPaletteEntries} +end + +struct StdVideoDecodeH265PictureInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol) + f === :IrapPicFlag && return (Ptr{UInt32}(x + 0), 0, 1) + f === :IdrPicFlag && return (Ptr{UInt32}(x + 0), 1, 1) + f === :IsReference && return (Ptr{UInt32}(x + 0), 2, 1) + f === :short_term_ref_pic_set_sps_flag && return (Ptr{UInt32}(x + 0), 3, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265PictureInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265PictureInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265PictureInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265PictureInfoFlags(IrapPicFlag::UInt32, IdrPicFlag::UInt32, IsReference::UInt32, short_term_ref_pic_set_sps_flag::UInt32) + ref = Ref{StdVideoDecodeH265PictureInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265PictureInfoFlags}, ref) + ptr.IrapPicFlag = IrapPicFlag + ptr.IdrPicFlag = IdrPicFlag + ptr.IsReference = IsReference + ptr.short_term_ref_pic_set_sps_flag = short_term_ref_pic_set_sps_flag + ref[] +end + +struct StdVideoDecodeH265PictureInfo + flags::StdVideoDecodeH265PictureInfoFlags + sps_video_parameter_set_id::UInt8 + pps_seq_parameter_set_id::UInt8 + pps_pic_parameter_set_id::UInt8 + NumDeltaPocsOfRefRpsIdx::UInt8 + PicOrderCntVal::Int32 + NumBitsForSTRefPicSetInSlice::UInt16 + reserved::UInt16 + RefPicSetStCurrBefore::NTuple{8, UInt8} + RefPicSetStCurrAfter::NTuple{8, UInt8} + RefPicSetLtCurr::NTuple{8, UInt8} +end + +struct StdVideoDecodeH265ReferenceInfoFlags + data::NTuple{4, UInt8} +end + +function Base.getproperty(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol) + f === :used_for_long_term_reference && return (Ptr{UInt32}(x + 0), 0, 1) + f === :unused_for_reference && return (Ptr{UInt32}(x + 0), 1, 1) + return getfield(x, f) +end + +function Base.getproperty(x::StdVideoDecodeH265ReferenceInfoFlags, f::Symbol) + r = Ref{StdVideoDecodeH265ReferenceInfoFlags}(x) + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end + +function Base.setproperty!(x::Ptr{StdVideoDecodeH265ReferenceInfoFlags}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end + +function StdVideoDecodeH265ReferenceInfoFlags(used_for_long_term_reference::UInt32, unused_for_reference::UInt32) + ref = Ref{StdVideoDecodeH265ReferenceInfoFlags}() + ptr = Base.unsafe_convert(Ptr{StdVideoDecodeH265ReferenceInfoFlags}, ref) + ptr.used_for_long_term_reference = used_for_long_term_reference + ptr.unused_for_reference = unused_for_reference + ref[] +end + +struct StdVideoDecodeH265ReferenceInfo + flags::StdVideoDecodeH265ReferenceInfoFlags + PicOrderCntVal::Int32 +end + +struct VkVideoDecodeH265ProfileInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdProfileIdc::StdVideoH265ProfileIdc +end + +struct VkVideoDecodeH265CapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxLevelIdc::StdVideoH265LevelIdc +end + +struct VkVideoDecodeH265SessionParametersAddInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + stdVPSCount::UInt32 + pStdVPSs::Ptr{StdVideoH265VideoParameterSet} + stdSPSCount::UInt32 + pStdSPSs::Ptr{StdVideoH265SequenceParameterSet} + stdPPSCount::UInt32 + pStdPPSs::Ptr{StdVideoH265PictureParameterSet} +end + +struct VkVideoDecodeH265SessionParametersCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + maxStdVPSCount::UInt32 + maxStdSPSCount::UInt32 + maxStdPPSCount::UInt32 + pParametersAddInfo::Ptr{VkVideoDecodeH265SessionParametersAddInfoKHR} +end + +struct VkVideoDecodeH265PictureInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdPictureInfo::Ptr{StdVideoDecodeH265PictureInfo} + sliceSegmentCount::UInt32 + pSliceSegmentOffsets::Ptr{UInt32} +end + +struct VkVideoDecodeH265DpbSlotInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pStdReferenceInfo::Ptr{StdVideoDecodeH265ReferenceInfo} +end + +@cenum VkQueueGlobalPriorityKHR::UInt32 begin + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +end + +struct VkDeviceQueueGlobalPriorityCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriority::VkQueueGlobalPriorityKHR +end + +struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + globalPriorityQuery::VkBool32 +end + +struct VkQueueFamilyGlobalPriorityPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + priorityCount::UInt32 + priorities::NTuple{16, VkQueueGlobalPriorityKHR} +end + +const VkDriverIdKHR = VkDriverId + +const VkConformanceVersionKHR = VkConformanceVersion + +const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + +const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + +const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + +const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits + +const VkResolveModeFlagsKHR = VkResolveModeFlags + +const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + +const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties + +const VkSemaphoreTypeKHR = VkSemaphoreType + +const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits + +const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + +const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + +const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + +const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + +const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + +const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + +const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) +const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) +const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) +const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) + ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) + ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo) + ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +end + +const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + +const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures + +@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +end + +struct VkFragmentShadingRateAttachmentInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} + shadingRateAttachmentTexelSize::VkExtent2D +end + +struct VkPipelineFragmentShadingRateStateCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentSize::VkExtent2D + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} +end + +struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineFragmentShadingRate::VkBool32 + primitiveFragmentShadingRate::VkBool32 + attachmentFragmentShadingRate::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + minFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSize::VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 + primitiveFragmentShadingRateWithMultipleViewports::VkBool32 + layeredShadingRateAttachments::VkBool32 + fragmentShadingRateNonTrivialCombinerOps::VkBool32 + maxFragmentSize::VkExtent2D + maxFragmentSizeAspectRatio::UInt32 + maxFragmentShadingRateCoverageSamples::UInt32 + maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 + fragmentShadingRateWithSampleMask::VkBool32 + fragmentShadingRateWithShaderSampleMask::VkBool32 + fragmentShadingRateWithConservativeRasterization::VkBool32 + fragmentShadingRateWithFragmentShaderInterlock::VkBool32 + fragmentShadingRateWithCustomSampleLocations::VkBool32 + fragmentShadingRateStrictMultiplyCombiner::VkBool32 +end + +struct VkPhysicalDeviceFragmentShadingRateKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleCounts::VkSampleCountFlags + fragmentSize::VkExtent2D +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) +const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) + ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +end + +struct VkSurfaceProtectedCapabilitiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsProtected::VkBool32 +end + +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceGroupsKHR ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) -const PFN_vkEnumeratePhysicalDeviceGroupsKHR = Ptr{Cvoid} +const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - ccall((:vkEnumeratePhysicalDeviceGroupsKHR, libvulkan), VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + +struct VkPhysicalDevicePresentWaitFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentWait::VkBool32 end -function vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{UInt32}, Ptr{VkPhysicalDeviceGroupProperties}), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) +# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) +const PFN_vkWaitForPresentKHR = Ptr{Cvoid} + +function vkWaitForPresentKHR(device, swapchain, presentId, timeout) + ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) end -const VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags +function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +end -const VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits +const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures -const VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags +const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures -const VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits +const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo -const VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties +const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo -const VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo +const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo -const VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties +const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo -const VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} -const VkExternalBufferPropertiesKHR = VkExternalBufferProperties +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} -const VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties +# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) +const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) -const PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = Ptr{Cvoid} +function vkGetBufferDeviceAddressKHR(device, pInfo) + ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) - ccall((:vkGetPhysicalDeviceExternalBufferPropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalBufferInfo}, Ptr{VkExternalBufferProperties}), physicalDevice, pExternalBufferInfo, pExternalBufferProperties) +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -const VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo +function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +end -const VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) + ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end -const VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo +function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) + ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +end -struct VkImportMemoryFdInfoKHR +const VkDeferredOperationKHR_T = Cvoid + +const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) +const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} + +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) +const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) + ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator) + ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) + ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) + ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation) + ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkGetDeferredOperationResultKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation) + ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +function vkDeferredOperationJoinKHR(device, operation, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +end + +@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +end + +struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - fd::Cint + pipelineExecutableInfo::VkBool32 end -struct VkMemoryFdPropertiesKHR +struct VkPipelineInfoKHR sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + pipeline::VkPipeline end -struct VkMemoryGetFdInfoKHR +struct VkPipelineExecutablePropertiesKHR sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + stages::VkShaderStageFlags + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + subgroupSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdKHR ) ( VkDevice device , const VkMemoryGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetMemoryFdKHR = Ptr{Cvoid} +struct VkPipelineExecutableInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + pipeline::VkPipeline + executableIndex::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryFdPropertiesKHR ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , int fd , VkMemoryFdPropertiesKHR * pMemoryFdProperties ) -const PFN_vkGetMemoryFdPropertiesKHR = Ptr{Cvoid} +struct VkPipelineExecutableStatisticValueKHR + data::NTuple{8, UInt8} +end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetMemoryFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) + f === :b32 && return Ptr{VkBool32}(x + 0) + f === :i64 && return Ptr{Int64}(x + 0) + f === :u64 && return Ptr{UInt64}(x + 0) + f === :f64 && return Ptr{Cdouble}(x + 0) + return getfield(x, f) +end + +function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) + r = Ref{VkPipelineExecutableStatisticValueKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) +end + +function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) +end + +const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} + +function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) + ref = Ref{VkPipelineExecutableStatisticValueKHR}() + ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) + if val isa VkBool32 + ptr.b32 = val + elseif val isa Int64 + ptr.i64 = val + elseif val isa UInt64 + ptr.u64 = val + elseif val isa Cdouble + ptr.f64 = val + end + ref[] +end + +struct VkPipelineExecutableStatisticKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + format::VkPipelineExecutableStatisticFormatKHR + value::VkPipelineExecutableStatisticValueKHR +end + +struct VkPipelineExecutableInternalRepresentationKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + name::NTuple{256, Cchar} + description::NTuple{256, Cchar} + isText::VkBool32 + dataSize::Csize_t + pData::Ptr{Cvoid} +end + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) +const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) +const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) +const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) + ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) + ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +end + +function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) end -function vkGetMemoryFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties + +struct VkPipelineLibraryCreateInfoKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + libraryCount::UInt32 + pLibraries::Ptr{VkPipeline} end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties) - ccall((:vkGetMemoryFdPropertiesKHR, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkPresentIdKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentIds::Ptr{UInt64} end -function vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Cint, Ptr{VkMemoryFdPropertiesKHR}), device, handleType, fd, pMemoryFdProperties) +struct VkPhysicalDevicePresentIdFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + presentId::VkBool32 end -const VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags +const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 -const VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits +const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 -const VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags +const VkAccessFlags2KHR = VkAccessFlags2 -const VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits +const VkAccessFlagBits2KHR = VkAccessFlagBits2 -const VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo +const VkSubmitFlagBitsKHR = VkSubmitFlagBits -const VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties +const VkSubmitFlagsKHR = VkSubmitFlags -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) -const PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = Ptr{Cvoid} +const VkMemoryBarrier2KHR = VkMemoryBarrier2 -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - ccall((:vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end +const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 -function vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalSemaphoreInfo}, Ptr{VkExternalSemaphoreProperties}), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) -end +const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 -const VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags +const VkDependencyInfoKHR = VkDependencyInfo -const VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits +const VkSubmitInfo2KHR = VkSubmitInfo2 -const VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo -struct VkImportSemaphoreFdInfoKHR +const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + +const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + +struct VkQueueFamilyCheckpointProperties2NV sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - flags::VkSemaphoreImportFlags - handleType::VkExternalSemaphoreHandleTypeFlagBits - fd::Cint + checkpointExecutionStageMask::VkPipelineStageFlags2 end -struct VkSemaphoreGetFdInfoKHR +struct VkCheckpointData2NV sType::VkStructureType pNext::Ptr{Cvoid} - semaphore::VkSemaphore - handleType::VkExternalSemaphoreHandleTypeFlagBits + stage::VkPipelineStageFlags2 + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkImportSemaphoreFdKHR ) ( VkDevice device , const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) -const PFN_vkImportSemaphoreFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreFdKHR ) ( VkDevice device , const VkSemaphoreGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetSemaphoreFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) +const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo) - ccall((:vkImportSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) +const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) +const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) +const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) +const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) +const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} + +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) + ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -function vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportSemaphoreFdInfoKHR}), device, pImportSemaphoreFdInfo) +function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetSemaphoreFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) + ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -function vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) end -struct VkPhysicalDevicePushDescriptorPropertiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - maxPushDescriptors::UInt32 +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) + ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetKHR ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites ) -const PFN_vkCmdPushDescriptorSetKHR = Ptr{Cvoid} +function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPushDescriptorSetWithTemplateKHR ) ( VkCommandBuffer commandBuffer , VkDescriptorUpdateTemplate descriptorUpdateTemplate , VkPipelineLayout layout , uint32_t set , const void * pData ) -const PFN_vkCmdPushDescriptorSetWithTemplateKHR = Ptr{Cvoid} +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) + ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - ccall((:vkCmdPushDescriptorSetKHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) end -function vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{VkWriteDescriptorSet}), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) + ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - ccall((:vkCmdPushDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) end -function vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, UInt32, Ptr{Cvoid}), commandBuffer, descriptorUpdateTemplate, layout, set, pData) +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) + ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) end -const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) + ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +end -const VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end -const VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures +function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +end -struct VkRectLayerKHR - offset::VkOffset2D - extent::VkExtent2D - layer::UInt32 +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkPresentRegionKHR - rectangleCount::UInt32 - pRectangles::Ptr{VkRectLayerKHR} +function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) end -struct VkPresentRegionsKHR +struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR sType::VkStructureType pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pRegions::Ptr{VkPresentRegionKHR} + fragmentShaderBarycentric::VkBool32 end -const VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate - -const VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType - -const VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags - -const VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry - -const VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo - -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDescriptorUpdateTemplateKHR ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) -const PFN_vkCreateDescriptorUpdateTemplateKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkDestroyDescriptorUpdateTemplateKHR ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDescriptorUpdateTemplateKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkUpdateDescriptorSetWithTemplateKHR ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) -const PFN_vkUpdateDescriptorSetWithTemplateKHR = Ptr{Cvoid} - -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - ccall((:vkCreateDescriptorUpdateTemplateKHR, libvulkan), VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + triStripVertexOrderIndependentOfProvokingVertex::VkBool32 end -function vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDescriptorUpdateTemplateCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkDescriptorUpdateTemplate}), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) +struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSubgroupUniformControlFlow::VkBool32 end -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator) - ccall((:vkDestroyDescriptorUpdateTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) -end +const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures -function vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorUpdateTemplate, Ptr{VkAllocationCallbacks}), device, descriptorUpdateTemplate, pAllocator) +struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + workgroupMemoryExplicitLayout::VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 + workgroupMemoryExplicitLayout8BitAccess::VkBool32 + workgroupMemoryExplicitLayout16BitAccess::VkBool32 end -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData) - ccall((:vkUpdateDescriptorSetWithTemplateKHR, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 -function vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, Ptr{Cvoid}), device, descriptorSet, descriptorUpdateTemplate, pData) -end +const VkCopyImageInfo2KHR = VkCopyImageInfo2 -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures +const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 -const VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo +const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 -const VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo +const VkBlitImageInfo2KHR = VkBlitImageInfo2 -const VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo +const VkResolveImageInfo2KHR = VkResolveImageInfo2 -const VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 +const VkBufferCopy2KHR = VkBufferCopy2 -const VkAttachmentDescription2KHR = VkAttachmentDescription2 +const VkImageCopy2KHR = VkImageCopy2 -const VkAttachmentReference2KHR = VkAttachmentReference2 +const VkImageBlit2KHR = VkImageBlit2 -const VkSubpassDescription2KHR = VkSubpassDescription2 +const VkBufferImageCopy2KHR = VkBufferImageCopy2 -const VkSubpassDependency2KHR = VkSubpassDependency2 +const VkImageResolve2KHR = VkImageResolve2 -const VkSubpassBeginInfoKHR = VkSubpassBeginInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) +const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} -const VkSubpassEndInfoKHR = VkSubpassEndInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) +const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRenderPass2KHR ) ( VkDevice device , const VkRenderPassCreateInfo2 * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) -const PFN_vkCreateRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) +const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , const VkSubpassBeginInfo * pSubpassBeginInfo ) -const PFN_vkCmdBeginRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) +const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdNextSubpass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassBeginInfo * pSubpassBeginInfo , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdNextSubpass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) +const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdEndRenderPass2KHR ) ( VkCommandBuffer commandBuffer , const VkSubpassEndInfo * pSubpassEndInfo ) -const PFN_vkCmdEndRenderPass2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) +const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass) - ccall((:vkCreateRenderPass2KHR, libvulkan), VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) + ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -function vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderPassCreateInfo2}, Ptr{VkAllocationCallbacks}, Ptr{VkRenderPass}), device, pCreateInfo, pAllocator, pRenderPass) +function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - ccall((:vkCmdBeginRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) + ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -function vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkRenderPassBeginInfo}, Ptr{VkSubpassBeginInfo}), commandBuffer, pRenderPassBegin, pSubpassBeginInfo) +function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - ccall((:vkCmdNextSubpass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) + ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassBeginInfo}, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) +function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo) - ccall((:vkCmdEndRenderPass2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) + ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -function vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSubpassEndInfo}), commandBuffer, pSubpassEndInfo) +function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) end -struct VkSharedPresentSurfaceCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - sharedPresentSupportedUsageFlags::VkImageUsageFlags +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) + ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainStatusKHR ) ( VkDevice device , VkSwapchainKHR swapchain ) -const PFN_vkGetSwapchainStatusKHR = Ptr{Cvoid} - -function vkGetSwapchainStatusKHR(device, swapchain) - ccall((:vkGetSwapchainStatusKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) end -function vkGetSwapchainStatusKHR(device, swapchain, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR), device, swapchain) +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) + ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) end -const VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags +function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +end -const VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits +const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 -const VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags +const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 -const VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits +const VkFormatProperties3KHR = VkFormatProperties3 -const VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo +struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMaintenance1::VkBool32 + rayTracingPipelineTraceRaysIndirect2::VkBool32 +end -const VkExternalFencePropertiesKHR = VkExternalFenceProperties +struct VkTraceRaysIndirectCommand2KHR + raygenShaderRecordAddress::VkDeviceAddress + raygenShaderRecordSize::VkDeviceSize + missShaderBindingTableAddress::VkDeviceAddress + missShaderBindingTableSize::VkDeviceSize + missShaderBindingTableStride::VkDeviceSize + hitShaderBindingTableAddress::VkDeviceAddress + hitShaderBindingTableSize::VkDeviceSize + hitShaderBindingTableStride::VkDeviceSize + callableShaderBindingTableAddress::VkDeviceAddress + callableShaderBindingTableSize::VkDeviceSize + callableShaderBindingTableStride::VkDeviceSize + width::UInt32 + height::UInt32 + depth::UInt32 +end -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) -const PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysIndirect2KHR ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectDeviceAddress ) +const PFN_vkCmdTraceRaysIndirect2KHR = Ptr{Cvoid} -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) - ccall((:vkGetPhysicalDeviceExternalFencePropertiesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirect2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -function vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkPhysicalDeviceExternalFenceInfo}, Ptr{VkExternalFenceProperties}), physicalDevice, pExternalFenceInfo, pExternalFenceProperties) +function vkCmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress), commandBuffer, indirectDeviceAddress) end -const VkFenceImportFlagsKHR = VkFenceImportFlags +const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features -const VkFenceImportFlagBitsKHR = VkFenceImportFlagBits +const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties -const VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo +const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements -struct VkImportFenceFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - flags::VkFenceImportFlags - handleType::VkExternalFenceHandleTypeFlagBits - fd::Cint -end +const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements -struct VkFenceGetFdInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - fence::VkFence - handleType::VkExternalFenceHandleTypeFlagBits -end +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkImportFenceFdKHR ) ( VkDevice device , const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) -const PFN_vkImportFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetFenceFdKHR ) ( VkDevice device , const VkFenceGetFdInfoKHR * pGetFdInfo , int * pFd ) -const PFN_vkGetFenceFdKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) +const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} -function vkImportFenceFdKHR(device, pImportFenceFdInfo) - ccall((:vkImportFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkImportFenceFdKHR(device, pImportFenceFdInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkImportFenceFdInfoKHR}), device, pImportFenceFdInfo) +function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd) - ccall((:vkGetFenceFdKHR, libvulkan), VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) + ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -function vkGetFenceFdKHR(device, pGetFdInfo, pFd, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkFenceGetFdInfoKHR}, Ptr{Cint}), device, pGetFdInfo, pFd) +function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -@cenum VkPerformanceCounterUnitKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -@cenum VkPerformanceCounterScopeKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_QUERY_SCOPE_RENDER_PASS_KHR = 1 - VK_QUERY_SCOPE_COMMAND_KHR = 2 - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647 +function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) end -@cenum VkPerformanceCounterStorageKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647 -end +const VkDebugReportCallbackEXT_T = Cvoid -@cenum VkPerformanceCounterDescriptionFlagBitsKHR::UInt32 begin - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2 - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647 -end +const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} -const VkPerformanceCounterDescriptionFlagsKHR = VkFlags +@cenum VkDebugReportObjectTypeEXT::UInt32 begin + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +end -@cenum VkAcquireProfilingLockFlagBitsKHR::UInt32 begin - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkDebugReportFlagBitsEXT::UInt32 begin + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkAcquireProfilingLockFlagsKHR = VkFlags +const VkDebugReportFlagsEXT = VkFlags -struct VkPhysicalDevicePerformanceQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCounterQueryPools::VkBool32 - performanceCounterMultipleQueryPools::VkBool32 -end +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) +const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} -struct VkPhysicalDevicePerformanceQueryPropertiesKHR +struct VkDebugReportCallbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - allowCommandBufferQueryCopies::VkBool32 + flags::VkDebugReportFlagsEXT + pfnCallback::PFN_vkDebugReportCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkPerformanceCounterKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - unit::VkPerformanceCounterUnitKHR - scope::VkPerformanceCounterScopeKHR - storage::VkPerformanceCounterStorageKHR - uuid::NTuple{16, UInt8} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) +const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) +const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} + +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) + ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) end -struct VkPerformanceCounterDescriptionKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPerformanceCounterDescriptionFlagsKHR - name::NTuple{256, Cchar} - category::NTuple{256, Cchar} - description::NTuple{256, Cchar} +function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) end -struct VkQueryPoolPerformanceCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - queueFamilyIndex::UInt32 - counterIndexCount::UInt32 - pCounterIndices::Ptr{UInt32} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) + ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -struct VkPerformanceCounterResultKHR - data::NTuple{8, UInt8} +function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) end -function Base.getproperty(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol) - f === :int32 && return Ptr{Int32}(x + 0) - f === :int64 && return Ptr{Int64}(x + 0) - f === :uint32 && return Ptr{UInt32}(x + 0) - f === :uint64 && return Ptr{UInt64}(x + 0) - f === :float32 && return Ptr{Cfloat}(x + 0) - f === :float64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) + ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function Base.getproperty(x::VkPerformanceCounterResultKHR, f::Symbol) - r = Ref{VkPerformanceCounterResultKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) end -function Base.setproperty!(x::Ptr{VkPerformanceCounterResultKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkRasterizationOrderAMD::UInt32 begin + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 end -const __U_VkPerformanceCounterResultKHR = Union{Int32, Int64, UInt32, UInt64, Cfloat, Cdouble} +struct VkPipelineRasterizationStateRasterizationOrderAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + rasterizationOrder::VkRasterizationOrderAMD +end -function VkPerformanceCounterResultKHR(val::__U_VkPerformanceCounterResultKHR) - ref = Ref{VkPerformanceCounterResultKHR}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceCounterResultKHR}, ref) - if val isa Int32 - ptr.int32 = val - elseif val isa Int64 - ptr.int64 = val - elseif val isa UInt32 - ptr.uint32 = val - elseif val isa UInt64 - ptr.uint64 = val - elseif val isa Cfloat - ptr.float32 = val - elseif val isa Cdouble - ptr.float64 = val - end - ref[] +struct VkDebugMarkerObjectNameInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + pObjectName::Ptr{Cchar} end -struct VkAcquireProfilingLockInfoKHR +struct VkDebugMarkerObjectTagInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkAcquireProfilingLockFlagsKHR - timeout::UInt64 + objectType::VkDebugReportObjectTypeEXT + object::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -struct VkPerformanceQuerySubmitInfoKHR +struct VkDebugMarkerMarkerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - counterPassIndex::UInt32 + pMarkerName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -# typedef VkResult ( VKAPI_PTR * PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , uint32_t * pCounterCount , VkPerformanceCounterKHR * pCounters , VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) -const PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) +const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR ) ( VkPhysicalDevice physicalDevice , const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo , uint32_t * pNumPasses ) -const PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) +const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireProfilingLockKHR ) ( VkDevice device , const VkAcquireProfilingLockInfoKHR * pInfo ) -const PFN_vkAcquireProfilingLockKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkReleaseProfilingLockKHR ) ( VkDevice device ) -const PFN_vkReleaseProfilingLockKHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - ccall((:vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) +const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} -function vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{UInt32}, Ptr{VkPerformanceCounterKHR}, Ptr{VkPerformanceCounterDescriptionKHR}), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) + ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - ccall((:vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, libvulkan), Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) end -function vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, Ptr{VkQueryPoolPerformanceCreateInfoKHR}, Ptr{UInt32}), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) + ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkAcquireProfilingLockKHR(device, pInfo) - ccall((:vkAcquireProfilingLockKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) end -function vkAcquireProfilingLockKHR(device, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAcquireProfilingLockInfoKHR}), device, pInfo) +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkReleaseProfilingLockKHR(device) - ccall((:vkReleaseProfilingLockKHR, libvulkan), Cvoid, (VkDevice,), device) +function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) end -function vkReleaseProfilingLockKHR(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function vkCmdDebugMarkerEndEXT(commandBuffer) + ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPointClippingBehaviorKHR = VkPointClippingBehavior +function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkTessellationDomainOriginKHR = VkTessellationDomainOrigin +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) + ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -const VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties +function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +end -const VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo +struct VkDedicatedAllocationImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference +struct VkDedicatedAllocationBufferCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocation::VkBool32 +end -const VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo +struct VkDedicatedAllocationMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + image::VkImage + buffer::VkBuffer +end -const VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo +const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags -struct VkPhysicalDeviceSurfaceInfo2KHR +struct VkPhysicalDeviceTransformFeedbackFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - surface::VkSurfaceKHR + transformFeedback::VkBool32 + geometryStreams::VkBool32 end -struct VkSurfaceCapabilities2KHR +struct VkPhysicalDeviceTransformFeedbackPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCapabilities::VkSurfaceCapabilitiesKHR + maxTransformFeedbackStreams::UInt32 + maxTransformFeedbackBuffers::UInt32 + maxTransformFeedbackBufferSize::VkDeviceSize + maxTransformFeedbackStreamDataSize::UInt32 + maxTransformFeedbackBufferDataSize::UInt32 + maxTransformFeedbackBufferDataStride::UInt32 + transformFeedbackQueries::VkBool32 + transformFeedbackStreamsLinesTriangles::VkBool32 + transformFeedbackRasterizationStreamSelect::VkBool32 + transformFeedbackDraw::VkBool32 end -struct VkSurfaceFormat2KHR +struct VkPipelineRasterizationStateStreamCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - surfaceFormat::VkSurfaceFormatKHR + flags::VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) +const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo , uint32_t * pSurfaceFormatCount , VkSurfaceFormat2KHR * pSurfaceFormats ) -const PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) +const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) +const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) +const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) +const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} + +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkSurfaceCapabilities2KHR}), physicalDevice, pSurfaceInfo, pSurfaceCapabilities) +function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - ccall((:vkGetPhysicalDeviceSurfaceFormats2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end + +function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end + +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end + +function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +end + +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) + ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +end + +function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) +end + +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) + ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end + +function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +end + +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -function vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{UInt32}, Ptr{VkSurfaceFormat2KHR}), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) +function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) end -const VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +const VkCuModuleNVX_T = Cvoid -const VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures +const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} -struct VkDisplayProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayProperties::VkDisplayPropertiesKHR -end +const VkCuFunctionNVX_T = Cvoid -struct VkDisplayPlaneProperties2KHR - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPlaneProperties::VkDisplayPlanePropertiesKHR -end +const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} -struct VkDisplayModeProperties2KHR +struct VkCuModuleCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - displayModeProperties::VkDisplayModePropertiesKHR + dataSize::Csize_t + pData::Ptr{Cvoid} end -struct VkDisplayPlaneInfo2KHR +struct VkCuFunctionCreateInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - mode::VkDisplayModeKHR - planeIndex::UInt32 + _module::VkCuModuleNVX + pName::Ptr{Cchar} end -struct VkDisplayPlaneCapabilities2KHR +struct VkCuLaunchInfoNVX sType::VkStructureType pNext::Ptr{Cvoid} - capabilities::VkDisplayPlaneCapabilitiesKHR + _function::VkCuFunctionNVX + gridDimX::UInt32 + gridDimY::UInt32 + gridDimZ::UInt32 + blockDimX::UInt32 + blockDimY::UInt32 + blockDimZ::UInt32 + sharedMemBytes::UInt32 + paramCount::Csize_t + pParams::Ptr{Ptr{Cvoid}} + extraCount::Csize_t + pExtras::Ptr{Ptr{Cvoid}} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkDisplayPlaneProperties2KHR * pProperties ) -const PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) +const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayModeProperties2KHR ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display , uint32_t * pPropertyCount , VkDisplayModeProperties2KHR * pProperties ) -const PFN_vkGetDisplayModeProperties2KHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) +const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDisplayPlaneCapabilities2KHR ) ( VkPhysicalDevice physicalDevice , const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo , VkDisplayPlaneCapabilities2KHR * pCapabilities ) -const PFN_vkGetDisplayPlaneCapabilities2KHR = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayProperties2KHR}), physicalDevice, pPropertyCount, pProperties) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) +const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceDisplayPlaneProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) + ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkDisplayPlaneProperties2KHR}), physicalDevice, pPropertyCount, pProperties) +function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties) - ccall((:vkGetDisplayModeProperties2KHR, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) + ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR, Ptr{UInt32}, Ptr{VkDisplayModeProperties2KHR}), physicalDevice, display, pPropertyCount, pProperties) +function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities) - ccall((:vkGetDisplayPlaneCapabilities2KHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkDestroyCuModuleNVX(device, _module, pAllocator) + ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -function vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkDisplayPlaneInfo2KHR}, Ptr{VkDisplayPlaneCapabilities2KHR}), physicalDevice, pDisplayPlaneInfo, pCapabilities) +function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) end -const VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements - -const VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo - -const VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 - -const VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 - -const VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 - -const VkMemoryRequirements2KHR = VkMemoryRequirements2 - -const VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 - -# typedef void ( VKAPI_PTR * PFN_vkGetImageMemoryRequirements2KHR ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetImageMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetBufferMemoryRequirements2KHR ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetBufferMemoryRequirements2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetImageSparseMemoryRequirements2KHR ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetImageSparseMemoryRequirements2KHR = Ptr{Cvoid} - -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetImageMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyCuFunctionNVX(device, _function, pAllocator) + ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkGetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetBufferMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) + ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -function vkGetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkBufferMemoryRequirementsInfo2}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetImageSparseMemoryRequirements2KHR, libvulkan), Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkImageViewHandleInfoNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + imageView::VkImageView + descriptorType::VkDescriptorType + sampler::VkSampler end -function vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkImageSparseMemoryRequirementsInfo2}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkImageViewAddressPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress + size::VkDeviceSize end -const VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo - -const VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion - -const VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion +# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) +const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} -const VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) +const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} -const VkChromaLocationKHR = VkChromaLocation +function vkGetImageViewHandleNVX(device, pInfo) + ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo +function vkGetImageViewHandleNVX(device, pInfo, fptr) + ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +end -const VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties) + ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo +function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +end -const VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} -const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} -const VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateSamplerYcbcrConversionKHR ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) -const PFN_vkCreateSamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroySamplerYcbcrConversionKHR ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroySamplerYcbcrConversionKHR = Ptr{Cvoid} +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion) - ccall((:vkCreateSamplerYcbcrConversionKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -function vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerYcbcrConversionCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkSamplerYcbcrConversion}), device, pCreateInfo, pAllocator, pYcbcrConversion) +struct VkTextureLODGatherFormatPropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + supportsTextureGatherLODBiasAMD::VkBool32 end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator) - ccall((:vkDestroySamplerYcbcrConversionKHR, libvulkan), Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +@cenum VkShaderInfoTypeAMD::UInt32 begin + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 end -function vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSamplerYcbcrConversion, Ptr{VkAllocationCallbacks}), device, ycbcrConversion, pAllocator) +struct VkShaderResourceUsageAMD + numUsedVgprs::UInt32 + numUsedSgprs::UInt32 + ldsSizePerLocalWorkGroup::UInt32 + ldsUsageSizeInBytes::Csize_t + scratchMemUsageInBytes::Csize_t end -const VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo +struct VkShaderStatisticsInfoAMD + shaderStageMask::VkShaderStageFlags + resourceUsage::VkShaderResourceUsageAMD + numPhysicalVgprs::UInt32 + numPhysicalSgprs::UInt32 + numAvailableVgprs::UInt32 + numAvailableSgprs::UInt32 + computeWorkGroupSize::NTuple{3, UInt32} +end -const VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo +# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) +const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkBindBufferMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) -const PFN_vkBindBufferMemory2KHR = Ptr{Cvoid} +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) + ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkBindImageMemory2KHR ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) -const PFN_vkBindImageMemory2KHR = Ptr{Cvoid} +function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindBufferMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceCornerSampledImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + cornerSampledImage::VkBool32 end -function vkBindBufferMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindBufferMemoryInfo}), device, bindInfoCount, pBindInfos) +@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos) - ccall((:vkBindImageMemory2KHR, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) -end +const VkExternalMemoryHandleTypeFlagsNV = VkFlags -function vkBindImageMemory2KHR(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindImageMemoryInfo}), device, bindInfoCount, pBindInfos) +@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties +const VkExternalMemoryFeatureFlagsNV = VkFlags -const VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport +struct VkExternalImageFormatPropertiesNV + imageFormatProperties::VkImageFormatProperties + externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSupportKHR ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) -const PFN_vkGetDescriptorSetLayoutSupportKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) +const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport) - ccall((:vkGetDescriptorSetLayoutSupportKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) + ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -function vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetLayoutCreateInfo}, Ptr{VkDescriptorSetLayoutSupport}), device, pCreateInfo, pSupport) +function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountKHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountKHR ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountKHR = Ptr{Cvoid} - -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkExternalMemoryImageCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkExportMemoryAllocateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + handleTypes::VkExternalMemoryHandleTypeFlagsNV end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountKHR, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +@cenum VkValidationCheckEXT::UInt32 begin + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 end -function vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkValidationFlagsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disabledValidationCheckCount::UInt32 + pDisabledValidationChecks::Ptr{VkValidationCheckEXT} end -const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures - -const VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures +const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features +struct VkImageViewASTCDecodeModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + decodeMode::VkFormat +end -struct VkPhysicalDeviceShaderClockFeaturesKHR +struct VkPhysicalDeviceASTCDecodeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupClock::VkBool32 - shaderDeviceClock::VkBool32 + decodeModeSharedExponent::VkBool32 end -@cenum VkQueueGlobalPriorityKHR::UInt32 begin - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024 - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647 +@cenum VkPipelineRobustnessBufferBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647 end -struct VkDeviceQueueGlobalPriorityCreateInfoKHR +@cenum VkPipelineRobustnessImageBehaviorEXT::UInt32 begin + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDevicePipelineRobustnessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriority::VkQueueGlobalPriorityKHR + pipelineRobustness::VkBool32 end -struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +struct VkPhysicalDevicePipelineRobustnessPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - globalPriorityQuery::VkBool32 + defaultRobustnessStorageBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs::VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages::VkPipelineRobustnessImageBehaviorEXT end -struct VkQueueFamilyGlobalPriorityPropertiesKHR +struct VkPipelineRobustnessCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priorityCount::UInt32 - priorities::NTuple{16, VkQueueGlobalPriorityKHR} + storageBuffers::VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers::VkPipelineRobustnessBufferBehaviorEXT + vertexInputs::VkPipelineRobustnessBufferBehaviorEXT + images::VkPipelineRobustnessImageBehaviorEXT end -const VkDriverIdKHR = VkDriverId - -const VkConformanceVersionKHR = VkConformanceVersion - -const VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties - -const VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence - -const VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties +@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end -const VkResolveModeFlagBitsKHR = VkResolveModeFlagBits +const VkConditionalRenderingFlagsEXT = VkFlags -const VkResolveModeFlagsKHR = VkResolveModeFlags +struct VkConditionalRenderingBeginInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer + offset::VkDeviceSize + flags::VkConditionalRenderingFlagsEXT +end -const VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve +struct VkPhysicalDeviceConditionalRenderingFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRendering::VkBool32 + inheritedConditionalRendering::VkBool32 +end -const VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties +struct VkCommandBufferInheritanceConditionalRenderingInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + conditionalRenderingEnable::VkBool32 +end -const VkSemaphoreTypeKHR = VkSemaphoreType +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) +const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagBitsKHR = VkSemaphoreWaitFlagBits +# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} -const VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) + ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +end -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures +function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +end -const VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties +function vkCmdEndConditionalRenderingEXT(commandBuffer) + ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo +function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo +struct VkViewportWScalingNV + xcoeff::Cfloat + ycoeff::Cfloat +end -const VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo +struct VkPipelineViewportWScalingStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportWScalingEnable::VkBool32 + viewportCount::UInt32 + pViewportWScalings::Ptr{VkViewportWScalingNV} +end -const VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) +const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSemaphoreCounterValueKHR ) ( VkDevice device , VkSemaphore semaphore , uint64_t * pValue ) -const PFN_vkGetSemaphoreCounterValueKHR = Ptr{Cvoid} +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitSemaphoresKHR ) ( VkDevice device , const VkSemaphoreWaitInfo * pWaitInfo , uint64_t timeout ) -const PFN_vkWaitSemaphoresKHR = Ptr{Cvoid} +function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkSignalSemaphoreKHR ) ( VkDevice device , const VkSemaphoreSignalInfo * pSignalInfo ) -const PFN_vkSignalSemaphoreKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue) - ccall((:vkGetSemaphoreCounterValueKHR, libvulkan), VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkReleaseDisplayEXT(physicalDevice, display) + ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSemaphore, Ptr{UInt64}), device, semaphore, pValue) +function vkReleaseDisplayEXT(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout) - ccall((:vkWaitSemaphoresKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) +@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 + VK_SURFACE_COUNTER_VBLANK_EXT = 1 + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkWaitSemaphoresKHR(device, pWaitInfo, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreWaitInfo}, UInt64), device, pWaitInfo, timeout) -end +const VkSurfaceCounterFlagsEXT = VkFlags -function vkSignalSemaphoreKHR(device, pSignalInfo) - ccall((:vkSignalSemaphoreKHR, libvulkan), VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +struct VkSurfaceCapabilities2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImageCount::UInt32 + maxImageCount::UInt32 + currentExtent::VkExtent2D + minImageExtent::VkExtent2D + maxImageExtent::VkExtent2D + maxImageArrayLayers::UInt32 + supportedTransforms::VkSurfaceTransformFlagsKHR + currentTransform::VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha::VkCompositeAlphaFlagsKHR + supportedUsageFlags::VkImageUsageFlags + supportedSurfaceCounters::VkSurfaceCounterFlagsEXT end -function vkSignalSemaphoreKHR(device, pSignalInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkSemaphoreSignalInfo}), device, pSignalInfo) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) +const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} + +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) + ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) end -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures +function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) +end -const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures +@cenum VkDisplayPowerStateEXT::UInt32 begin + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +end -@cenum VkFragmentShadingRateCombinerOpKHR::UInt32 begin - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647 +@cenum VkDeviceEventTypeEXT::UInt32 begin + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkFragmentShadingRateAttachmentInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - pFragmentShadingRateAttachment::Ptr{VkAttachmentReference2} - shadingRateAttachmentTexelSize::VkExtent2D +@cenum VkDisplayEventTypeEXT::UInt32 begin + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 end -struct VkPipelineFragmentShadingRateStateCreateInfoKHR +struct VkDisplayPowerInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentSize::VkExtent2D - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + powerState::VkDisplayPowerStateEXT end -struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR +struct VkDeviceEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineFragmentShadingRate::VkBool32 - primitiveFragmentShadingRate::VkBool32 - attachmentFragmentShadingRate::VkBool32 + deviceEvent::VkDeviceEventTypeEXT end -struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR +struct VkDisplayEventInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSize::VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio::UInt32 - primitiveFragmentShadingRateWithMultipleViewports::VkBool32 - layeredShadingRateAttachments::VkBool32 - fragmentShadingRateNonTrivialCombinerOps::VkBool32 - maxFragmentSize::VkExtent2D - maxFragmentSizeAspectRatio::UInt32 - maxFragmentShadingRateCoverageSamples::UInt32 - maxFragmentShadingRateRasterizationSamples::VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites::VkBool32 - fragmentShadingRateWithSampleMask::VkBool32 - fragmentShadingRateWithShaderSampleMask::VkBool32 - fragmentShadingRateWithConservativeRasterization::VkBool32 - fragmentShadingRateWithFragmentShaderInterlock::VkBool32 - fragmentShadingRateWithCustomSampleLocations::VkBool32 - fragmentShadingRateStrictMultiplyCombiner::VkBool32 + displayEvent::VkDisplayEventTypeEXT end -struct VkPhysicalDeviceFragmentShadingRateKHR +struct VkSwapchainCounterCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - sampleCounts::VkSampleCountFlags - fragmentSize::VkExtent2D + surfaceCounters::VkSurfaceCounterFlagsEXT end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR ) ( VkPhysicalDevice physicalDevice , uint32_t * pFragmentShadingRateCount , VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) -const PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) +const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateKHR ) ( VkCommandBuffer commandBuffer , const VkExtent2D * pFragmentSize , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateKHR = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - ccall((:vkGetPhysicalDeviceFragmentShadingRatesKHR, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) +const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) +const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} + +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) + ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceFragmentShadingRateKHR}), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) +function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps) - ccall((:vkCmdSetFragmentShadingRateKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) + ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -function vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkExtent2D}, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, pFragmentSize, combinerOps) +function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) end -struct VkSurfaceProtectedCapabilitiesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsProtected::VkBool32 +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) + ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) end -const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures +function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) + ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +end -const VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) + ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -const VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout +function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +end -struct VkPhysicalDevicePresentWaitFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentWait::VkBool32 +struct VkRefreshCycleDurationGOOGLE + refreshDuration::UInt64 end -# typedef VkResult ( VKAPI_PTR * PFN_vkWaitForPresentKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t presentId , uint64_t timeout ) -const PFN_vkWaitForPresentKHR = Ptr{Cvoid} +struct VkPastPresentationTimingGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 + actualPresentTime::UInt64 + earliestPresentTime::UInt64 + presentMargin::UInt64 +end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout) - ccall((:vkWaitForPresentKHR, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkPresentTimeGOOGLE + presentID::UInt32 + desiredPresentTime::UInt64 end -function vkWaitForPresentKHR(device, swapchain, presentId, timeout, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, UInt64, UInt64), device, swapchain, presentId, timeout) +struct VkPresentTimesInfoGOOGLE + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pTimes::Ptr{VkPresentTimeGOOGLE} end -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) +const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} -const VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) +const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} -const VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) + ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo +function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +end -const VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) + ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -const VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo +function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) + ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressKHR = Ptr{Cvoid} +struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + sType::VkStructureType + pNext::Ptr{Cvoid} + perViewPositionAllComponents::VkBool32 +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureAddressKHR ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferOpaqueCaptureAddressKHR = Ptr{Cvoid} +@cenum VkViewportCoordinateSwizzleNV::UInt32 begin + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +end -# typedef uint64_t ( VKAPI_PTR * PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR ) ( VkDevice device , const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) -const PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = Ptr{Cvoid} +const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags -function vkGetBufferDeviceAddressKHR(device, pInfo) - ccall((:vkGetBufferDeviceAddressKHR, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkViewportSwizzleNV + x::VkViewportCoordinateSwizzleNV + y::VkViewportCoordinateSwizzleNV + z::VkViewportCoordinateSwizzleNV + w::VkViewportCoordinateSwizzleNV end -function vkGetBufferDeviceAddressKHR(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +struct VkPipelineViewportSwizzleStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount::UInt32 + pViewportSwizzles::Ptr{VkViewportSwizzleNV} end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetBufferOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +@cenum VkDiscardRectangleModeEXT::UInt32 begin + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 end -function vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags + +struct VkPhysicalDeviceDiscardRectanglePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxDiscardRectangles::UInt32 end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo) - ccall((:vkGetDeviceMemoryOpaqueCaptureAddressKHR, libvulkan), UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +struct VkPipelineDiscardRectangleStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode::VkDiscardRectangleModeEXT + discardRectangleCount::UInt32 + pDiscardRectangles::Ptr{VkRect2D} end -function vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, fptr) - ccall(fptr, UInt64, (VkDevice, Ptr{VkDeviceMemoryOpaqueCaptureAddressInfo}), device, pInfo) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) +const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} + +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) end -const VkDeferredOperationKHR_T = Cvoid +function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) +end -const VkDeferredOperationKHR = Ptr{VkDeferredOperationKHR_T} +@cenum VkConservativeRasterizationModeEXT::UInt32 begin + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDeferredOperationKHR ) ( VkDevice device , const VkAllocationCallbacks * pAllocator , VkDeferredOperationKHR * pDeferredOperation ) -const PFN_vkCreateDeferredOperationKHR = Ptr{Cvoid} +const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkDestroyDeferredOperationKHR ) ( VkDevice device , VkDeferredOperationKHR operation , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDeferredOperationKHR = Ptr{Cvoid} +struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveOverestimationSize::Cfloat + maxExtraPrimitiveOverestimationSize::Cfloat + extraPrimitiveOverestimationSizeGranularity::Cfloat + primitiveUnderestimation::VkBool32 + conservativePointAndLineRasterization::VkBool32 + degenerateTrianglesRasterized::VkBool32 + degenerateLinesRasterized::VkBool32 + fullyCoveredFragmentShaderInputVariable::VkBool32 + conservativeRasterizationPostDepthCoverage::VkBool32 +end -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetDeferredOperationMaxConcurrencyKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationMaxConcurrencyKHR = Ptr{Cvoid} +struct VkPipelineRasterizationConservativeStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode::VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize::Cfloat +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeferredOperationResultKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkGetDeferredOperationResultKHR = Ptr{Cvoid} +const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkDeferredOperationJoinKHR ) ( VkDevice device , VkDeferredOperationKHR operation ) -const PFN_vkDeferredOperationJoinKHR = Ptr{Cvoid} +struct VkPhysicalDeviceDepthClipEnableFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + depthClipEnable::VkBool32 +end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation) - ccall((:vkCreateDeferredOperationKHR, libvulkan), VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +struct VkPipelineRasterizationDepthClipStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable::VkBool32 end -function vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAllocationCallbacks}, Ptr{VkDeferredOperationKHR}), device, pAllocator, pDeferredOperation) +struct VkXYColorEXT + x::Cfloat + y::Cfloat end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator) - ccall((:vkDestroyDeferredOperationKHR, libvulkan), Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) +struct VkHdrMetadataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + displayPrimaryRed::VkXYColorEXT + displayPrimaryGreen::VkXYColorEXT + displayPrimaryBlue::VkXYColorEXT + whitePoint::VkXYColorEXT + maxLuminance::Cfloat + minLuminance::Cfloat + maxContentLightLevel::Cfloat + maxFrameAverageLightLevel::Cfloat end -function vkDestroyDeferredOperationKHR(device, operation, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeferredOperationKHR, Ptr{VkAllocationCallbacks}), device, operation, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) +const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation) - ccall((:vkGetDeferredOperationMaxConcurrencyKHR, libvulkan), UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) + ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDeferredOperationMaxConcurrencyKHR(device, operation, fptr) - ccall(fptr, UInt32, (VkDevice, VkDeferredOperationKHR), device, operation) +function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) + ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) end -function vkGetDeferredOperationResultKHR(device, operation) - ccall((:vkGetDeferredOperationResultKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +const VkDebugUtilsMessengerEXT_T = Cvoid -function vkGetDeferredOperationResultKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} -function vkDeferredOperationJoinKHR(device, operation) - ccall((:vkDeferredOperationJoinKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) -end +const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags -function vkDeferredOperationJoinKHR(device, operation, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR), device, operation) +@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -@cenum VkPipelineExecutableStatisticFormatKHR::UInt32 begin - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647 +@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8 + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +const VkDebugUtilsMessageTypeFlagsEXT = VkFlags + +const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags + +const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags + +struct VkDebugUtilsLabelEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipelineExecutableInfo::VkBool32 + pLabelName::Ptr{Cchar} + color::NTuple{4, Cfloat} end -struct VkPipelineInfoKHR +struct VkDebugUtilsObjectNameInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline + objectType::VkObjectType + objectHandle::UInt64 + pObjectName::Ptr{Cchar} end -struct VkPipelineExecutablePropertiesKHR +struct VkDebugUtilsMessengerCallbackDataEXT sType::VkStructureType pNext::Ptr{Cvoid} - stages::VkShaderStageFlags - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - subgroupSize::UInt32 + flags::VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName::Ptr{Cchar} + messageIdNumber::Int32 + pMessage::Ptr{Cchar} + queueLabelCount::UInt32 + pQueueLabels::Ptr{VkDebugUtilsLabelEXT} + cmdBufLabelCount::UInt32 + pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} + objectCount::UInt32 + pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} end -struct VkPipelineExecutableInfoKHR +# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} + +struct VkDebugUtilsMessengerCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - pipeline::VkPipeline - executableIndex::UInt32 + flags::VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT + messageType::VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT + pUserData::Ptr{Cvoid} end -struct VkPipelineExecutableStatisticValueKHR - data::NTuple{8, UInt8} +struct VkDebugUtilsObjectTagInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + objectType::VkObjectType + objectHandle::UInt64 + tagName::UInt64 + tagSize::Csize_t + pTag::Ptr{Cvoid} end -function Base.getproperty(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol) - f === :b32 && return Ptr{VkBool32}(x + 0) - f === :i64 && return Ptr{Int64}(x + 0) - f === :u64 && return Ptr{UInt64}(x + 0) - f === :f64 && return Ptr{Cdouble}(x + 0) - return getfield(x, f) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) +const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} -function Base.getproperty(x::VkPipelineExecutableStatisticValueKHR, f::Symbol) - r = Ref{VkPipelineExecutableStatisticValueKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) +const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} -function Base.setproperty!(x::Ptr{VkPipelineExecutableStatisticValueKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end +# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} -const __U_VkPipelineExecutableStatisticValueKHR = Union{VkBool32, Int64, UInt64, Cdouble} +# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) +const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} -function VkPipelineExecutableStatisticValueKHR(val::__U_VkPipelineExecutableStatisticValueKHR) - ref = Ref{VkPipelineExecutableStatisticValueKHR}() - ptr = Base.unsafe_convert(Ptr{VkPipelineExecutableStatisticValueKHR}, ref) - if val isa VkBool32 - ptr.b32 = val - elseif val isa Int64 - ptr.i64 = val - elseif val isa UInt64 - ptr.u64 = val - elseif val isa Cdouble - ptr.f64 = val - end - ref[] +# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) +const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) +const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) +const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} + +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) + ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -struct VkPipelineExecutableStatisticKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - format::VkPipelineExecutableStatisticFormatKHR - value::VkPipelineExecutableStatisticValueKHR +function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) end -struct VkPipelineExecutableInternalRepresentationKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - name::NTuple{256, Cchar} - description::NTuple{256, Cchar} - isText::VkBool32 - dataSize::Csize_t - pData::Ptr{Cvoid} +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) + ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutablePropertiesKHR ) ( VkDevice device , const VkPipelineInfoKHR * pPipelineInfo , uint32_t * pExecutableCount , VkPipelineExecutablePropertiesKHR * pProperties ) -const PFN_vkGetPipelineExecutablePropertiesKHR = Ptr{Cvoid} +function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableStatisticsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pStatisticCount , VkPipelineExecutableStatisticKHR * pStatistics ) -const PFN_vkGetPipelineExecutableStatisticsKHR = Ptr{Cvoid} +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) ( VkDevice device , const VkPipelineExecutableInfoKHR * pExecutableInfo , uint32_t * pInternalRepresentationCount , VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) -const PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Ptr{Cvoid} +function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties) - ccall((:vkGetPipelineExecutablePropertiesKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkQueueEndDebugUtilsLabelEXT(queue) + ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) end -function vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutablePropertiesKHR}), device, pPipelineInfo, pExecutableCount, pProperties) +function vkQueueEndDebugUtilsLabelEXT(queue, fptr) + ccall(fptr, Cvoid, (VkQueue,), queue) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics) - ccall((:vkGetPipelineExecutableStatisticsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) + ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableStatisticKHR}), device, pExecutableInfo, pStatisticCount, pStatistics) +function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - ccall((:vkGetPipelineExecutableInternalRepresentationsKHR, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -function vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineExecutableInfoKHR}, Ptr{UInt32}, Ptr{VkPipelineExecutableInternalRepresentationKHR}), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) +function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) end -const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures +function vkCmdEndDebugUtilsLabelEXT(commandBuffer) + ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +end -const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -struct VkPipelineLibraryCreateInfoKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - libraryCount::UInt32 - pLibraries::Ptr{VkPipeline} +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) + ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +end + +function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +end + +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) + ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -struct VkPresentIdKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pPresentIds::Ptr{UInt64} +function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) end -struct VkPhysicalDevicePresentIdFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - presentId::VkBool32 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) + ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) end -const VkPipelineStageFlags2KHR = VkPipelineStageFlags2 +function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) +end -const VkPipelineStageFlagBits2KHR = VkPipelineStageFlagBits2 +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) + ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkAccessFlags2KHR = VkAccessFlags2 +function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) + ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +end -const VkAccessFlagBits2KHR = VkAccessFlagBits2 +const VkSamplerReductionModeEXT = VkSamplerReductionMode -const VkSubmitFlagBitsKHR = VkSubmitFlagBits +const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo -const VkSubmitFlagsKHR = VkSubmitFlags +const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties -const VkMemoryBarrier2KHR = VkMemoryBarrier2 +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures -const VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 +const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties -const VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 +const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock -const VkDependencyInfoKHR = VkDependencyInfo +const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo -const VkSubmitInfo2KHR = VkSubmitInfo2 +struct VkSampleLocationEXT + x::Cfloat + y::Cfloat +end -const VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo +struct VkSampleLocationsInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationsPerPixel::VkSampleCountFlagBits + sampleLocationGridSize::VkExtent2D + sampleLocationsCount::UInt32 + pSampleLocations::Ptr{VkSampleLocationEXT} +end -const VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo +struct VkAttachmentSampleLocationsEXT + attachmentIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end -const VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features +struct VkSubpassSampleLocationsEXT + subpassIndex::UInt32 + sampleLocationsInfo::VkSampleLocationsInfoEXT +end -struct VkQueueFamilyCheckpointProperties2NV +struct VkRenderPassSampleLocationsBeginInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags2 + attachmentInitialSampleLocationsCount::UInt32 + pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} + postSubpassSampleLocationsCount::UInt32 + pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} end -struct VkCheckpointData2NV +struct VkPipelineSampleLocationsStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stage::VkPipelineStageFlags2 - pCheckpointMarker::Ptr{Cvoid} + sampleLocationsEnable::VkBool32 + sampleLocationsInfo::VkSampleLocationsInfoEXT end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdSetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdResetEvent2KHR ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags2 stageMask ) -const PFN_vkCmdResetEvent2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWaitEvents2KHR ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , const VkDependencyInfo * pDependencyInfos ) -const PFN_vkCmdWaitEvents2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdPipelineBarrier2KHR ) ( VkCommandBuffer commandBuffer , const VkDependencyInfo * pDependencyInfo ) -const PFN_vkCmdPipelineBarrier2KHR = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteTimestamp2KHR ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkQueryPool queryPool , uint32_t query ) -const PFN_vkCmdWriteTimestamp2KHR = Ptr{Cvoid} +struct VkPhysicalDeviceSampleLocationsPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + sampleLocationSampleCounts::VkSampleCountFlags + maxSampleLocationGridSize::VkExtent2D + sampleLocationCoordinateRange::NTuple{2, Cfloat} + sampleLocationSubPixelBits::UInt32 + variableSampleLocations::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSubmit2KHR ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo2 * pSubmits , VkFence fence ) -const PFN_vkQueueSubmit2KHR = Ptr{Cvoid} +struct VkMultisamplePropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxSampleLocationGridSize::VkExtent2D +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarker2AMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags2 stage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarker2AMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) +const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointData2NV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointData2NV * pCheckpointData ) -const PFN_vkGetQueueCheckpointData2NV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) +const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo) - ccall((:vkCmdSetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) + ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, Ptr{VkDependencyInfo}), commandBuffer, event, pDependencyInfo) +function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask) - ccall((:vkCmdResetEvent2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) + ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCmdResetEvent2KHR(commandBuffer, event, stageMask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkEvent, VkPipelineStageFlags2), commandBuffer, event, stageMask) +function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) + ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos) - ccall((:vkCmdWaitEvents2KHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +@cenum VkBlendOverlapEXT::UInt32 begin + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 end -function vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkEvent}, Ptr{VkDependencyInfo}), commandBuffer, eventCount, pEvents, pDependencyInfos) +struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendCoherentOperations::VkBool32 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo) - ccall((:vkCmdPipelineBarrier2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + advancedBlendMaxColorAttachments::UInt32 + advancedBlendIndependentBlend::VkBool32 + advancedBlendNonPremultipliedSrcColor::VkBool32 + advancedBlendNonPremultipliedDstColor::VkBool32 + advancedBlendCorrelatedOverlap::VkBool32 + advancedBlendAllOperations::VkBool32 end -function vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDependencyInfo}), commandBuffer, pDependencyInfo) +struct VkPipelineColorBlendAdvancedStateCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT end -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query) - ccall((:vkCmdWriteTimestamp2KHR, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) -end +const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags -function vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, UInt32), commandBuffer, stage, queryPool, query) +struct VkPipelineCoverageToColorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable::VkBool32 + coverageToColorLocation::UInt32 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence) - ccall((:vkQueueSubmit2KHR, libvulkan), VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) +@cenum VkCoverageModulationModeNV::UInt32 begin + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 end -function vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, fptr) - ccall(fptr, VkResult, (VkQueue, UInt32, Ptr{VkSubmitInfo2}, VkFence), queue, submitCount, pSubmits, fence) -end +const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarker2AMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkPipelineCoverageModulationStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode::VkCoverageModulationModeNV + coverageModulationTableEnable::VkBool32 + coverageModulationTableCount::UInt32 + pCoverageModulationTable::Ptr{Cfloat} end -function vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, UInt32), commandBuffer, stage, dstBuffer, dstOffset, marker) +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMCount::UInt32 + shaderWarpsPerSM::UInt32 end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointData2NV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderSMBuiltins::VkBool32 end -function vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointData2NV}), queue, pCheckpointDataCount, pCheckpointData) +struct VkDrmFormatModifierPropertiesEXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags end -struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +struct VkDrmFormatModifierPropertiesListEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSubgroupUniformControlFlow::VkBool32 + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} end -const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - -struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - workgroupMemoryExplicitLayout::VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout::VkBool32 - workgroupMemoryExplicitLayout8BitAccess::VkBool32 - workgroupMemoryExplicitLayout16BitAccess::VkBool32 + drmFormatModifier::UInt64 + sharingMode::VkSharingMode + queueFamilyIndexCount::UInt32 + pQueueFamilyIndices::Ptr{UInt32} end -const VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - -const VkCopyImageInfo2KHR = VkCopyImageInfo2 - -const VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - -const VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - -const VkBlitImageInfo2KHR = VkBlitImageInfo2 - -const VkResolveImageInfo2KHR = VkResolveImageInfo2 +struct VkImageDrmFormatModifierListCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifiers::Ptr{UInt64} +end -const VkBufferCopy2KHR = VkBufferCopy2 +struct VkImageDrmFormatModifierExplicitCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + pPlaneLayouts::Ptr{VkSubresourceLayout} +end -const VkImageCopy2KHR = VkImageCopy2 +struct VkImageDrmFormatModifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifier::UInt64 +end -const VkImageBlit2KHR = VkImageBlit2 +struct VkDrmFormatModifierProperties2EXT + drmFormatModifier::UInt64 + drmFormatModifierPlaneCount::UInt32 + drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +end -const VkBufferImageCopy2KHR = VkBufferImageCopy2 +struct VkDrmFormatModifierPropertiesList2EXT + sType::VkStructureType + pNext::Ptr{Cvoid} + drmFormatModifierCount::UInt32 + pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} +end -const VkImageResolve2KHR = VkImageResolve2 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) +const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferInfo2 * pCopyBufferInfo ) -const PFN_vkCmdCopyBuffer2KHR = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) + ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageInfo2 * pCopyImageInfo ) -const PFN_vkCmdCopyImage2KHR = Ptr{Cvoid} +function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyBufferToImage2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) -const PFN_vkCmdCopyBufferToImage2KHR = Ptr{Cvoid} +const VkValidationCacheEXT_T = Cvoid -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyImageToBuffer2KHR ) ( VkCommandBuffer commandBuffer , const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) -const PFN_vkCmdCopyImageToBuffer2KHR = Ptr{Cvoid} +const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} -# typedef void ( VKAPI_PTR * PFN_vkCmdBlitImage2KHR ) ( VkCommandBuffer commandBuffer , const VkBlitImageInfo2 * pBlitImageInfo ) -const PFN_vkCmdBlitImage2KHR = Ptr{Cvoid} +@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdResolveImage2KHR ) ( VkCommandBuffer commandBuffer , const VkResolveImageInfo2 * pResolveImageInfo ) -const PFN_vkCmdResolveImage2KHR = Ptr{Cvoid} +const VkValidationCacheCreateFlagsEXT = VkFlags -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo) - ccall((:vkCmdCopyBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkValidationCacheCreateFlagsEXT + initialDataSize::Csize_t + pInitialData::Ptr{Cvoid} end -function vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferInfo2}), commandBuffer, pCopyBufferInfo) +struct VkShaderModuleValidationCacheCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + validationCache::VkValidationCacheEXT end -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo) - ccall((:vkCmdCopyImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) +const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} -function vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageInfo2}), commandBuffer, pCopyImageInfo) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo) - ccall((:vkCmdCopyBufferToImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) +const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} -function vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyBufferToImageInfo2}), commandBuffer, pCopyBufferToImageInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) +const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo) - ccall((:vkCmdCopyImageToBuffer2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) + ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyImageToBufferInfo2}), commandBuffer, pCopyImageToBufferInfo) +function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo) - ccall((:vkCmdBlitImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) + ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkBlitImageInfo2}), commandBuffer, pBlitImageInfo) +function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo) - ccall((:vkCmdResolveImage2KHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) + ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -function vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkResolveImageInfo2}), commandBuffer, pResolveImageInfo) +function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) end -const VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 - -const VkFormatFeatureFlagBits2KHR = VkFormatFeatureFlagBits2 - -const VkFormatProperties3KHR = VkFormatProperties3 +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) + ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features +function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +end -const VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties +const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits -const VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements +const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags -const VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements +const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceBufferMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceBufferMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceBufferMemoryRequirementsKHR = Ptr{Cvoid} +const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetDeviceImageMemoryRequirementsKHR = Ptr{Cvoid} +const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties -# typedef void ( VKAPI_PTR * PFN_vkGetDeviceImageSparseMemoryRequirementsKHR ) ( VkDevice device , const VkDeviceImageMemoryRequirements * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) -const PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = Ptr{Cvoid} +const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceBufferMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) -end +const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport -function vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceBufferMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkShadingRatePaletteEntryNV::UInt32 begin + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements) - ccall((:vkGetDeviceImageMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +@cenum VkCoarseSampleOrderTypeNV::UInt32 begin + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 end -function vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +struct VkShadingRatePaletteNV + shadingRatePaletteEntryCount::UInt32 + pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - ccall((:vkGetDeviceImageSparseMemoryRequirementsKHR, libvulkan), Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPipelineViewportShadingRateImageStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImageEnable::VkBool32 + viewportCount::UInt32 + pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} end -function vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDeviceImageMemoryRequirements}, Ptr{UInt32}, Ptr{VkSparseImageMemoryRequirements2}), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) +struct VkPhysicalDeviceShadingRateImageFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateImage::VkBool32 + shadingRateCoarseSampleOrder::VkBool32 end -const VkDebugReportCallbackEXT_T = Cvoid - -const VkDebugReportCallbackEXT = Ptr{VkDebugReportCallbackEXT_T} - -@cenum VkDebugReportObjectTypeEXT::UInt32 begin - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647 +struct VkPhysicalDeviceShadingRateImagePropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateTexelSize::VkExtent2D + shadingRatePaletteSize::UInt32 + shadingRateMaxCoarseSamples::UInt32 end -@cenum VkDebugReportFlagBitsEXT::UInt32 begin - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 2 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 8 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16 - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +struct VkCoarseSampleLocationNV + pixelX::UInt32 + pixelY::UInt32 + sample::UInt32 end -const VkDebugReportFlagsEXT = VkFlags - -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) ( VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage , void * pUserData ) -const PFN_vkDebugReportCallbackEXT = Ptr{Cvoid} +struct VkCoarseSampleOrderCustomNV + shadingRate::VkShadingRatePaletteEntryNV + sampleCount::UInt32 + sampleLocationCount::UInt32 + pSampleLocations::Ptr{VkCoarseSampleLocationNV} +end -struct VkDebugReportCallbackCreateInfoEXT +struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugReportFlagsEXT - pfnCallback::PFN_vkDebugReportCallbackEXT - pUserData::Ptr{Cvoid} + sampleOrderType::VkCoarseSampleOrderTypeNV + customSampleOrderCount::UInt32 + pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) -const PFN_vkCreateDebugReportCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugReportCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) +const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) -const PFN_vkDebugReportMessageEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) +const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback) - ccall((:vkCreateDebugReportCallbackEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugReportCallbackCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugReportCallbackEXT}), instance, pCreateInfo, pAllocator, pCallback) +function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator) - ccall((:vkDestroyDebugReportCallbackEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportCallbackEXT, Ptr{VkAllocationCallbacks}), instance, callback, pAllocator) +function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) - ccall((:vkDebugReportMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -function vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, UInt64, Csize_t, Int32, Ptr{Cchar}, Ptr{Cchar}), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage) +function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) end -@cenum VkRasterizationOrderAMD::UInt32 begin - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647 -end +const VkAccelerationStructureNV_T = Cvoid -struct VkPipelineRasterizationStateRasterizationOrderAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrder::VkRasterizationOrderAMD +const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} + +@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkDebugMarkerObjectNameInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - pObjectName::Ptr{Cchar} +const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR + +@cenum VkGeometryTypeKHR::UInt32 begin + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 + VK_GEOMETRY_TYPE_AABBS_NV = 1 + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkDebugMarkerObjectTagInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - objectType::VkDebugReportObjectTypeEXT - object::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} +const VkGeometryTypeNV = VkGeometryTypeKHR + +@cenum VkAccelerationStructureTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 end -struct VkDebugMarkerMarkerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pMarkerName::Ptr{Cchar} - color::NTuple{4, Cfloat} +const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR + +@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectTagEXT ) ( VkDevice device , const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) -const PFN_vkDebugMarkerSetObjectTagEXT = Ptr{Cvoid} +const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR -# typedef VkResult ( VKAPI_PTR * PFN_vkDebugMarkerSetObjectNameEXT ) ( VkDevice device , const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) -const PFN_vkDebugMarkerSetObjectNameEXT = Ptr{Cvoid} +@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerBeginEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerBeginEXT = Ptr{Cvoid} +@cenum VkGeometryFlagBitsKHR::UInt32 begin + VK_GEOMETRY_OPAQUE_BIT_KHR = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 + VK_GEOMETRY_OPAQUE_BIT_NV = 1 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerEndEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdDebugMarkerEndEXT = Ptr{Cvoid} +const VkGeometryFlagsKHR = VkFlags -# typedef void ( VKAPI_PTR * PFN_vkCmdDebugMarkerInsertEXT ) ( VkCommandBuffer commandBuffer , const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) -const PFN_vkCmdDebugMarkerInsertEXT = Ptr{Cvoid} +const VkGeometryFlagsNV = VkGeometryFlagsKHR -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo) - ccall((:vkDebugMarkerSetObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) -end +const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR -function vkDebugMarkerSetObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectTagInfoEXT}), device, pTagInfo) +@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo) - ccall((:vkDebugMarkerSetObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +const VkGeometryInstanceFlagsKHR = VkFlags + +const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR + +const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR + +@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end -function vkDebugMarkerSetObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugMarkerObjectNameInfoEXT}), device, pNameInfo) +const VkBuildAccelerationStructureFlagsKHR = VkFlags + +const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR + +const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR + +struct VkRayTracingShaderGroupCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkRayTracingShaderGroupTypeKHR + generalShader::UInt32 + closestHitShader::UInt32 + anyHitShader::UInt32 + intersectionShader::UInt32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerBeginEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkRayTracingPipelineCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkPipelineCreateFlags + stageCount::UInt32 + pStages::Ptr{VkPipelineShaderStageCreateInfo} + groupCount::UInt32 + pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} + maxRecursionDepth::UInt32 + layout::VkPipelineLayout + basePipelineHandle::VkPipeline + basePipelineIndex::Int32 end -function vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkGeometryTrianglesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + vertexData::VkBuffer + vertexOffset::VkDeviceSize + vertexCount::UInt32 + vertexStride::VkDeviceSize + vertexFormat::VkFormat + indexData::VkBuffer + indexOffset::VkDeviceSize + indexCount::UInt32 + indexType::VkIndexType + transformData::VkBuffer + transformOffset::VkDeviceSize end -function vkCmdDebugMarkerEndEXT(commandBuffer) - ccall((:vkCmdDebugMarkerEndEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkGeometryAABBNV + sType::VkStructureType + pNext::Ptr{Cvoid} + aabbData::VkBuffer + numAABBs::UInt32 + stride::UInt32 + offset::VkDeviceSize end -function vkCmdDebugMarkerEndEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkGeometryDataNV + triangles::VkGeometryTrianglesNV + aabbs::VkGeometryAABBNV end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo) - ccall((:vkCmdDebugMarkerInsertEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkGeometryNV + sType::VkStructureType + pNext::Ptr{Cvoid} + geometryType::VkGeometryTypeKHR + geometry::VkGeometryDataNV + flags::VkGeometryFlagsKHR end -function vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugMarkerMarkerInfoEXT}), commandBuffer, pMarkerInfo) +struct VkAccelerationStructureInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkAccelerationStructureTypeNV + flags::VkBuildAccelerationStructureFlagsNV + instanceCount::UInt32 + geometryCount::UInt32 + pGeometries::Ptr{VkGeometryNV} end -struct VkDedicatedAllocationImageCreateInfoNV +struct VkAccelerationStructureCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + compactedSize::VkDeviceSize + info::VkAccelerationStructureInfoNV end -struct VkDedicatedAllocationBufferCreateInfoNV +struct VkBindAccelerationStructureMemoryInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocation::VkBool32 + accelerationStructure::VkAccelerationStructureNV + memory::VkDeviceMemory + memoryOffset::VkDeviceSize + deviceIndexCount::UInt32 + pDeviceIndices::Ptr{UInt32} end -struct VkDedicatedAllocationMemoryAllocateInfoNV +struct VkWriteDescriptorSetAccelerationStructureNV sType::VkStructureType pNext::Ptr{Cvoid} - image::VkImage - buffer::VkBuffer + accelerationStructureCount::UInt32 + pAccelerationStructures::Ptr{VkAccelerationStructureNV} end -const VkPipelineRasterizationStateStreamCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +struct VkAccelerationStructureMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - transformFeedback::VkBool32 - geometryStreams::VkBool32 + type::VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure::VkAccelerationStructureNV end -struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +struct VkPhysicalDeviceRayTracingPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - maxTransformFeedbackStreams::UInt32 - maxTransformFeedbackBuffers::UInt32 - maxTransformFeedbackBufferSize::VkDeviceSize - maxTransformFeedbackStreamDataSize::UInt32 - maxTransformFeedbackBufferDataSize::UInt32 - maxTransformFeedbackBufferDataStride::UInt32 - transformFeedbackQueries::VkBool32 - transformFeedbackStreamsLinesTriangles::VkBool32 - transformFeedbackRasterizationStreamSelect::VkBool32 - transformFeedbackDraw::VkBool32 + shaderGroupHandleSize::UInt32 + maxRecursionDepth::UInt32 + maxShaderGroupStride::UInt32 + shaderGroupBaseAlignment::UInt32 + maxGeometryCount::UInt64 + maxInstanceCount::UInt64 + maxTriangleCount::UInt64 + maxDescriptorSetAccelerationStructures::UInt32 end -struct VkPipelineRasterizationStateStreamCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream::UInt32 +struct VkTransformMatrixKHR + matrix::NTuple{3, NTuple{4, Cfloat}} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindTransformFeedbackBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes ) -const PFN_vkCmdBindTransformFeedbackBuffersEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdBeginTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndTransformFeedbackEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstCounterBuffer , uint32_t counterBufferCount , const VkBuffer * pCounterBuffers , const VkDeviceSize * pCounterBufferOffsets ) -const PFN_vkCmdEndTransformFeedbackEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags , uint32_t index ) -const PFN_vkCmdBeginQueryIndexedEXT = Ptr{Cvoid} +const VkTransformMatrixNV = VkTransformMatrixKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdEndQueryIndexedEXT ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , uint32_t index ) -const PFN_vkCmdEndQueryIndexedEXT = Ptr{Cvoid} +struct VkAabbPositionsKHR + minX::Cfloat + minY::Cfloat + minZ::Cfloat + maxX::Cfloat + maxY::Cfloat + maxZ::Cfloat +end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectByteCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t instanceCount , uint32_t firstInstance , VkBuffer counterBuffer , VkDeviceSize counterBufferOffset , uint32_t counterOffset , uint32_t vertexStride ) -const PFN_vkCmdDrawIndirectByteCountEXT = Ptr{Cvoid} +const VkAabbPositionsNV = VkAabbPositionsKHR -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - ccall((:vkCmdBindTransformFeedbackBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +struct VkAccelerationStructureInstanceKHR + data::NTuple{64, UInt8} end -function vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) +function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) + f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) + return getfield(x, f) end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdBeginTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) + r = Ref{VkAccelerationStructureInstanceKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end end -function vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - ccall((:vkCmdEndTransformFeedbackEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) +function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureInstanceKHR}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) + ptr.transform = transform + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) -end +const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index) - ccall((:vkCmdBeginQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) +const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} -function vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, VkQueryControlFlags, UInt32), commandBuffer, queryPool, query, flags, index) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index) - ccall((:vkCmdEndQueryIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) -end +# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) +const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} -function vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkQueryPool, UInt32, UInt32), commandBuffer, queryPool, query, index) +# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) +const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) +const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) +const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) +const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) +const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) +const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) +const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) +const PFN_vkCompileDeferredNV = Ptr{Cvoid} + +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) + ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - ccall((:vkCmdDrawIndirectByteCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) end -function vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) + ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) end -const VkCuModuleNVX_T = Cvoid +function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +end -const VkCuModuleNVX = Ptr{VkCuModuleNVX_T} +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end -const VkCuFunctionNVX_T = Cvoid +function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +end -const VkCuFunctionNVX = Ptr{VkCuFunctionNVX_T} +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) + ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +end -struct VkCuModuleCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - dataSize::Csize_t - pData::Ptr{Cvoid} +function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) end -struct VkCuFunctionCreateInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _module::VkCuModuleNVX - pName::Ptr{Cchar} +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -struct VkCuLaunchInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - _function::VkCuFunctionNVX - gridDimX::UInt32 - gridDimY::UInt32 - gridDimZ::UInt32 - blockDimX::UInt32 - blockDimY::UInt32 - blockDimZ::UInt32 - sharedMemBytes::UInt32 - paramCount::Csize_t - pParams::Ptr{Ptr{Cvoid}} - extraCount::Csize_t - pExtras::Ptr{Ptr{Cvoid}} +function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuModuleNVX ) ( VkDevice device , const VkCuModuleCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuModuleNVX * pModule ) -const PFN_vkCreateCuModuleNVX = Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) + ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateCuFunctionNVX ) ( VkDevice device , const VkCuFunctionCreateInfoNVX * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCuFunctionNVX * pFunction ) -const PFN_vkCreateCuFunctionNVX = Ptr{Cvoid} +function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuModuleNVX ) ( VkDevice device , VkCuModuleNVX module , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuModuleNVX = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyCuFunctionNVX ) ( VkDevice device , VkCuFunctionNVX function , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyCuFunctionNVX = Ptr{Cvoid} +function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCuLaunchKernelNVX ) ( VkCommandBuffer commandBuffer , const VkCuLaunchInfoNVX * pLaunchInfo ) -const PFN_vkCmdCuLaunchKernelNVX = Ptr{Cvoid} +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule) - ccall((:vkCreateCuModuleNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuModuleCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuModuleNVX}), device, pCreateInfo, pAllocator, pModule) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction) - ccall((:vkCreateCuFunctionNVX, libvulkan), VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkCuFunctionCreateInfoNVX}, Ptr{VkAllocationCallbacks}, Ptr{VkCuFunctionNVX}), device, pCreateInfo, pAllocator, pFunction) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDestroyCuModuleNVX(device, _module, pAllocator) - ccall((:vkDestroyCuModuleNVX, libvulkan), Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) end -function vkDestroyCuModuleNVX(device, _module, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuModuleNVX, Ptr{VkAllocationCallbacks}), device, _module, pAllocator) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) + ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator) - ccall((:vkDestroyCuFunctionNVX, libvulkan), Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) end -function vkDestroyCuFunctionNVX(device, _function, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkCuFunctionNVX, Ptr{VkAllocationCallbacks}), device, _function, pAllocator) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo) - ccall((:vkCmdCuLaunchKernelNVX, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) end -function vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCuLaunchInfoNVX}), commandBuffer, pLaunchInfo) +function vkCompileDeferredNV(device, pipeline, shader) + ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -struct VkImageViewHandleInfoNVX - sType::VkStructureType - pNext::Ptr{Cvoid} - imageView::VkImageView - descriptorType::VkDescriptorType - sampler::VkSampler +function vkCompileDeferredNV(device, pipeline, shader, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) end -struct VkImageViewAddressPropertiesNVX +struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress - size::VkDeviceSize -end - -# typedef uint32_t ( VKAPI_PTR * PFN_vkGetImageViewHandleNVX ) ( VkDevice device , const VkImageViewHandleInfoNVX * pInfo ) -const PFN_vkGetImageViewHandleNVX = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewAddressNVX ) ( VkDevice device , VkImageView imageView , VkImageViewAddressPropertiesNVX * pProperties ) -const PFN_vkGetImageViewAddressNVX = Ptr{Cvoid} - -function vkGetImageViewHandleNVX(device, pInfo) - ccall((:vkGetImageViewHandleNVX, libvulkan), UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) + representativeFragmentTest::VkBool32 end -function vkGetImageViewHandleNVX(device, pInfo, fptr) - ccall(fptr, UInt32, (VkDevice, Ptr{VkImageViewHandleInfoNVX}), device, pInfo) +struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + representativeFragmentTestEnable::VkBool32 end -function vkGetImageViewAddressNVX(device, imageView, pProperties) - ccall((:vkGetImageViewAddressNVX, libvulkan), VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkPhysicalDeviceImageViewImageFormatInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageViewType::VkImageViewType end -function vkGetImageViewAddressNVX(device, imageView, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImageView, Ptr{VkImageViewAddressPropertiesNVX}), device, imageView, pProperties) +struct VkFilterCubicImageViewImageFormatPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCubic::VkBool32 + filterCubicMinmax::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndirectCountAMD = Ptr{Cvoid} +const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawIndexedIndirectCountAMD ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawIndexedIndirectCountAMD = Ptr{Cvoid} +const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkImportMemoryHostPointerInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + handleType::VkExternalMemoryHandleTypeFlagBits + pHostPointer::Ptr{Cvoid} end -function vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkMemoryHostPointerPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryTypeBits::UInt32 end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawIndexedIndirectCountAMD, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minImportedHostPointerAlignment::VkDeviceSize end -function vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) +const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} + +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) + ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -struct VkTextureLODGatherFormatPropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - supportsTextureGatherLODBiasAMD::VkBool32 +function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) end -@cenum VkShaderInfoTypeAMD::UInt32 begin - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) +const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} + +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -struct VkShaderResourceUsageAMD - numUsedVgprs::UInt32 - numUsedSgprs::UInt32 - ldsSizePerLocalWorkGroup::UInt32 - ldsUsageSizeInBytes::Csize_t - scratchMemUsageInBytes::Csize_t +function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) end -struct VkShaderStatisticsInfoAMD - shaderStageMask::VkShaderStageFlags - resourceUsage::VkShaderResourceUsageAMD - numPhysicalVgprs::UInt32 - numPhysicalSgprs::UInt32 - numAvailableVgprs::UInt32 - numAvailableSgprs::UInt32 - computeWorkGroupSize::NTuple{3, UInt32} +@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetShaderInfoAMD ) ( VkDevice device , VkPipeline pipeline , VkShaderStageFlagBits shaderStage , VkShaderInfoTypeAMD infoType , size_t * pInfoSize , void * pInfo ) -const PFN_vkGetShaderInfoAMD = Ptr{Cvoid} +const VkPipelineCompilerControlFlagsAMD = VkFlags -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - ccall((:vkGetShaderInfoAMD, libvulkan), VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +struct VkPipelineCompilerControlCreateInfoAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + compilerControlFlags::VkPipelineCompilerControlFlagsAMD end -function vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, Ptr{Csize_t}, Ptr{Cvoid}), device, pipeline, shaderStage, infoType, pInfoSize, pInfo) +@cenum VkTimeDomainEXT::UInt32 begin + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 end -struct VkPhysicalDeviceCornerSampledImageFeaturesNV +struct VkCalibratedTimestampInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - cornerSampledImage::VkBool32 + timeDomain::VkTimeDomainEXT end -@cenum VkExternalMemoryHandleTypeFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) +const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} -const VkExternalMemoryHandleTypeFlagsNV = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) +const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} -@cenum VkExternalMemoryFeatureFlagBitsNV::UInt32 begin - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4 - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) + ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) end -const VkExternalMemoryFeatureFlagsNV = VkFlags +function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +end -struct VkExternalImageFormatPropertiesNV - imageFormatProperties::VkImageFormatProperties - externalMemoryFeatures::VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes::VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes::VkExternalMemoryHandleTypeFlagsNV +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkExternalMemoryHandleTypeFlagsNV externalHandleType , VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) -const PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Ptr{Cvoid} +function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) - ccall((:vkGetPhysicalDeviceExternalImageFormatPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +struct VkPhysicalDeviceShaderCorePropertiesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEngineCount::UInt32 + shaderArraysPerEngineCount::UInt32 + computeUnitsPerShaderArray::UInt32 + simdPerComputeUnit::UInt32 + wavefrontsPerSimd::UInt32 + wavefrontSize::UInt32 + sgprsPerSimd::UInt32 + minSgprAllocation::UInt32 + maxSgprAllocation::UInt32 + sgprAllocationGranularity::UInt32 + vgprsPerSimd::UInt32 + minVgprAllocation::UInt32 + maxVgprAllocation::UInt32 + vgprAllocationGranularity::UInt32 end -function vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkExternalMemoryHandleTypeFlagsNV, Ptr{VkExternalImageFormatPropertiesNV}), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 end -struct VkExternalMemoryImageCreateInfoNV +struct VkDeviceMemoryOverallocationCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + overallocationBehavior::VkMemoryOverallocationBehaviorAMD end -struct VkExportMemoryAllocateInfoNV +struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleTypes::VkExternalMemoryHandleTypeFlagsNV + maxVertexAttribDivisor::UInt32 end -@cenum VkValidationCheckEXT::UInt32 begin - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647 +struct VkVertexInputBindingDivisorDescriptionEXT + binding::UInt32 + divisor::UInt32 end -struct VkValidationFlagsEXT +struct VkPipelineVertexInputDivisorStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - disabledValidationCheckCount::UInt32 - pDisabledValidationChecks::Ptr{VkValidationCheckEXT} + vertexBindingDivisorCount::UInt32 + pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} end -const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures - -struct VkImageViewASTCDecodeModeEXT +struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - decodeMode::VkFormat + vertexAttributeInstanceRateDivisor::VkBool32 + vertexAttributeInstanceRateZeroDivisor::VkBool32 end -struct VkPhysicalDeviceASTCDecodeFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - decodeModeSharedExponent::VkBool32 -end +const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits -@cenum VkConditionalRenderingFlagBitsEXT::UInt32 begin - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1 - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags -const VkConditionalRenderingFlagsEXT = VkFlags +const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo -struct VkConditionalRenderingBeginInfoEXT +const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback + +struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - buffer::VkBuffer - offset::VkDeviceSize - flags::VkConditionalRenderingFlagsEXT + computeDerivativeGroupQuads::VkBool32 + computeDerivativeGroupLinear::VkBool32 end -struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +struct VkPhysicalDeviceMeshShaderFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRendering::VkBool32 - inheritedConditionalRendering::VkBool32 + taskShader::VkBool32 + meshShader::VkBool32 end -struct VkCommandBufferInheritanceConditionalRenderingInfoEXT +struct VkPhysicalDeviceMeshShaderPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - conditionalRenderingEnable::VkBool32 -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer , const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) -const PFN_vkCmdBeginConditionalRenderingEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndConditionalRenderingEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndConditionalRenderingEXT = Ptr{Cvoid} - -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin) - ccall((:vkCmdBeginConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) + maxDrawMeshTasksCount::UInt32 + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskTotalMemorySize::UInt32 + maxTaskOutputCount::UInt32 + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshTotalMemorySize::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 end -function vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkConditionalRenderingBeginInfoEXT}), commandBuffer, pConditionalRenderingBegin) +struct VkDrawMeshTasksIndirectCommandNV + taskCount::UInt32 + firstTask::UInt32 end -function vkCmdEndConditionalRenderingEXT(commandBuffer) - ccall((:vkCmdEndConditionalRenderingEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) +const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} -function vkCmdEndConditionalRenderingEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} -struct VkViewportWScalingNV - xcoeff::Cfloat - ycoeff::Cfloat -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} -struct VkPipelineViewportWScalingStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - viewportWScalingEnable::VkBool32 - viewportCount::UInt32 - pViewportWScalings::Ptr{VkViewportWScalingNV} +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) + ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportWScalingNV * pViewportWScalings ) -const PFN_vkCmdSetViewportWScalingNV = Ptr{Cvoid} - -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - ccall((:vkCmdSetViewportWScalingNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) end -function vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportWScalingNV}), commandBuffer, firstViewport, viewportCount, pViewportWScalings) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseDisplayEXT ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkReleaseDisplayEXT = Ptr{Cvoid} - -function vkReleaseDisplayEXT(physicalDevice, display) - ccall((:vkReleaseDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkReleaseDisplayEXT(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -@cenum VkSurfaceCounterFlagBitsEXT::UInt32 begin - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1 - VK_SURFACE_COUNTER_VBLANK_EXT = 1 - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -const VkSurfaceCounterFlagsEXT = VkFlags +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR -struct VkSurfaceCapabilities2EXT +struct VkPhysicalDeviceShaderImageFootprintFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - minImageCount::UInt32 - maxImageCount::UInt32 - currentExtent::VkExtent2D - minImageExtent::VkExtent2D - maxImageExtent::VkExtent2D - maxImageArrayLayers::UInt32 - supportedTransforms::VkSurfaceTransformFlagsKHR - currentTransform::VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha::VkCompositeAlphaFlagsKHR - supportedUsageFlags::VkImageUsageFlags - supportedSurfaceCounters::VkSurfaceCounterFlagsEXT -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) -const PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities) - ccall((:vkGetPhysicalDeviceSurfaceCapabilities2EXT, libvulkan), VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) -end - -function vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkSurfaceKHR, Ptr{VkSurfaceCapabilities2EXT}), physicalDevice, surface, pSurfaceCapabilities) + imageFootprint::VkBool32 end -@cenum VkDisplayPowerStateEXT::UInt32 begin - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647 +struct VkPipelineViewportExclusiveScissorStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissorCount::UInt32 + pExclusiveScissors::Ptr{VkRect2D} end -@cenum VkDeviceEventTypeEXT::UInt32 begin - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +struct VkPhysicalDeviceExclusiveScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + exclusiveScissor::VkBool32 end -@cenum VkDisplayEventTypeEXT::UInt32 begin - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) +const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} -struct VkDisplayPowerInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - powerState::VkDisplayPowerStateEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -struct VkDeviceEventInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceEvent::VkDeviceEventTypeEXT +function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) end -struct VkDisplayEventInfoEXT +struct VkQueueFamilyCheckpointPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - displayEvent::VkDisplayEventTypeEXT + checkpointExecutionStageMask::VkPipelineStageFlags end -struct VkSwapchainCounterCreateInfoEXT +struct VkCheckpointDataNV sType::VkStructureType pNext::Ptr{Cvoid} - surfaceCounters::VkSurfaceCounterFlagsEXT + stage::VkPipelineStageFlagBits + pCheckpointMarker::Ptr{Cvoid} end -# typedef VkResult ( VKAPI_PTR * PFN_vkDisplayPowerControlEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) -const PFN_vkDisplayPowerControlEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDeviceEventEXT ) ( VkDevice device , const VkDeviceEventInfoEXT * pDeviceEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDeviceEventEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkRegisterDisplayEventEXT ) ( VkDevice device , VkDisplayKHR display , const VkDisplayEventInfoEXT * pDisplayEventInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) -const PFN_vkRegisterDisplayEventEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) +const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetSwapchainCounterEXT ) ( VkDevice device , VkSwapchainKHR swapchain , VkSurfaceCounterFlagBitsEXT counter , uint64_t * pCounterValue ) -const PFN_vkGetSwapchainCounterEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) +const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo) - ccall((:vkDisplayPowerControlEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) + ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayPowerInfoEXT}), device, display, pDisplayPowerInfo) +function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence) - ccall((:vkRegisterDeviceEventEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) + ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, pDeviceEventInfo, pAllocator, pFence) +function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) + ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence) - ccall((:vkRegisterDisplayEventEXT, libvulkan), VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) +struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderIntegerFunctions2::VkBool32 end -function vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, fptr) - ccall(fptr, VkResult, (VkDevice, VkDisplayKHR, Ptr{VkDisplayEventInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkFence}), device, display, pDisplayEventInfo, pAllocator, pFence) -end +const VkPerformanceConfigurationINTEL_T = Cvoid -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue) - ccall((:vkGetSwapchainCounterEXT, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} + +@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 end -function vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, VkSurfaceCounterFlagBitsEXT, Ptr{UInt64}), device, swapchain, counter, pCounterValue) +@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 end -struct VkRefreshCycleDurationGOOGLE - refreshDuration::UInt64 +@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPastPresentationTimingGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 - actualPresentTime::UInt64 - earliestPresentTime::UInt64 - presentMargin::UInt64 +@cenum VkPerformanceParameterTypeINTEL::UInt32 begin + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPresentTimeGOOGLE - presentID::UInt32 - desiredPresentTime::UInt64 +@cenum VkPerformanceValueTypeINTEL::UInt32 begin + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 end -struct VkPresentTimesInfoGOOGLE - sType::VkStructureType - pNext::Ptr{Cvoid} - swapchainCount::UInt32 - pTimes::Ptr{VkPresentTimeGOOGLE} +struct VkPerformanceValueDataINTEL + data::NTuple{8, UInt8} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRefreshCycleDurationGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) -const PFN_vkGetRefreshCycleDurationGOOGLE = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPastPresentationTimingGOOGLE ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pPresentationTimingCount , VkPastPresentationTimingGOOGLE * pPresentationTimings ) -const PFN_vkGetPastPresentationTimingGOOGLE = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) + f === :value32 && return Ptr{UInt32}(x + 0) + f === :value64 && return Ptr{UInt64}(x + 0) + f === :valueFloat && return Ptr{Cfloat}(x + 0) + f === :valueBool && return Ptr{VkBool32}(x + 0) + f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) + return getfield(x, f) +end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties) - ccall((:vkGetRefreshCycleDurationGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) + r = Ref{VkPerformanceValueDataINTEL}(x) + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{VkRefreshCycleDurationGOOGLE}), device, swapchain, pDisplayTimingProperties) +function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings) - ccall((:vkGetPastPresentationTimingGOOGLE, libvulkan), VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} + +function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) + ref = Ref{VkPerformanceValueDataINTEL}() + ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) + if val isa UInt32 + ptr.value32 = val + elseif val isa UInt64 + ptr.value64 = val + elseif val isa Cfloat + ptr.valueFloat = val + elseif val isa VkBool32 + ptr.valueBool = val + elseif val isa Ptr{Cchar} + ptr.valueString = val + end + ref[] end -function vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, fptr) - ccall(fptr, VkResult, (VkDevice, VkSwapchainKHR, Ptr{UInt32}, Ptr{VkPastPresentationTimingGOOGLE}), device, swapchain, pPresentationTimingCount, pPresentationTimings) +struct VkPerformanceValueINTEL + type::VkPerformanceValueTypeINTEL + data::VkPerformanceValueDataINTEL end -struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +struct VkInitializePerformanceApiInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - perViewPositionAllComponents::VkBool32 + pUserData::Ptr{Cvoid} end -@cenum VkViewportCoordinateSwizzleNV::UInt32 begin - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647 +struct VkQueryPoolPerformanceQueryCreateInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + performanceCountersSampling::VkQueryPoolSamplingModeINTEL end -const VkPipelineViewportSwizzleStateCreateFlagsNV = VkFlags - -struct VkViewportSwizzleNV - x::VkViewportCoordinateSwizzleNV - y::VkViewportCoordinateSwizzleNV - z::VkViewportCoordinateSwizzleNV - w::VkViewportCoordinateSwizzleNV -end +const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL -struct VkPipelineViewportSwizzleStateCreateInfoNV +struct VkPerformanceMarkerInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount::UInt32 - pViewportSwizzles::Ptr{VkViewportSwizzleNV} + marker::UInt64 end -@cenum VkDiscardRectangleModeEXT::UInt32 begin - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647 +struct VkPerformanceStreamMarkerInfoINTEL + sType::VkStructureType + pNext::Ptr{Cvoid} + marker::UInt32 end -const VkPipelineDiscardRectangleStateCreateFlagsEXT = VkFlags - -struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +struct VkPerformanceOverrideInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - maxDiscardRectangles::UInt32 + type::VkPerformanceOverrideTypeINTEL + enable::VkBool32 + parameter::UInt64 end -struct VkPipelineDiscardRectangleStateCreateInfoEXT +struct VkPerformanceConfigurationAcquireInfoINTEL sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode::VkDiscardRectangleModeEXT - discardRectangleCount::UInt32 - pDiscardRectangles::Ptr{VkRect2D} + type::VkPerformanceConfigurationTypeINTEL end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDiscardRectangleEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstDiscardRectangle , uint32_t discardRectangleCount , const VkRect2D * pDiscardRectangles ) -const PFN_vkCmdSetDiscardRectangleEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) +const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - ccall((:vkCmdSetDiscardRectangleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) +const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} -function vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} -@cenum VkConservativeRasterizationModeEXT::UInt32 begin - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) +const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} -const VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) +const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} -struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveOverestimationSize::Cfloat - maxExtraPrimitiveOverestimationSize::Cfloat - extraPrimitiveOverestimationSizeGranularity::Cfloat - primitiveUnderestimation::VkBool32 - conservativePointAndLineRasterization::VkBool32 - degenerateTrianglesRasterized::VkBool32 - degenerateLinesRasterized::VkBool32 - fullyCoveredFragmentShaderInputVariable::VkBool32 - conservativeRasterizationPostDepthCoverage::VkBool32 +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) +const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) +const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) +const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} + +function vkInitializePerformanceApiINTEL(device, pInitializeInfo) + ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -struct VkPipelineRasterizationConservativeStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode::VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize::Cfloat +function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) end -const VkPipelineRasterizationDepthClipStateCreateFlagsEXT = VkFlags +function vkUninitializePerformanceApiINTEL(device) + ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +end -struct VkPhysicalDeviceDepthClipEnableFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipEnable::VkBool32 +function vkUninitializePerformanceApiINTEL(device, fptr) + ccall(fptr, Cvoid, (VkDevice,), device) end -struct VkPipelineRasterizationDepthClipStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable::VkBool32 +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkXYColorEXT - x::Cfloat - y::Cfloat +function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -struct VkHdrMetadataEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - displayPrimaryRed::VkXYColorEXT - displayPrimaryGreen::VkXYColorEXT - displayPrimaryBlue::VkXYColorEXT - whitePoint::VkXYColorEXT - maxLuminance::Cfloat - minLuminance::Cfloat - maxContentLightLevel::Cfloat - maxFrameAverageLightLevel::Cfloat +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) + ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) end -# typedef void ( VKAPI_PTR * PFN_vkSetHdrMetadataEXT ) ( VkDevice device , uint32_t swapchainCount , const VkSwapchainKHR * pSwapchains , const VkHdrMetadataEXT * pMetadata ) -const PFN_vkSetHdrMetadataEXT = Ptr{Cvoid} +function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata) - ccall((:vkSetHdrMetadataEXT, libvulkan), Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) + ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -function vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, fptr) - ccall(fptr, Cvoid, (VkDevice, UInt32, Ptr{VkSwapchainKHR}, Ptr{VkHdrMetadataEXT}), device, swapchainCount, pSwapchains, pMetadata) +function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) + ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) end -const VkDebugUtilsMessengerEXT_T = Cvoid +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) + ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end -const VkDebugUtilsMessengerEXT = Ptr{VkDebugUtilsMessengerEXT_T} +function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +end -const VkDebugUtilsMessengerCallbackDataFlagsEXT = VkFlags +function vkReleasePerformanceConfigurationINTEL(device, configuration) + ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +end -@cenum VkDebugUtilsMessageSeverityFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) end -@cenum VkDebugUtilsMessageTypeFlagBitsEXT::UInt32 begin - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4 - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) + ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) end -const VkDebugUtilsMessageTypeFlagsEXT = VkFlags +function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) + ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +end -const VkDebugUtilsMessageSeverityFlagsEXT = VkFlags +function vkGetPerformanceParameterINTEL(device, parameter, pValue) + ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end -const VkDebugUtilsMessengerCreateFlagsEXT = VkFlags +function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) + ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +end -struct VkDebugUtilsLabelEXT +struct VkPhysicalDevicePCIBusInfoPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - pLabelName::Ptr{Cchar} - color::NTuple{4, Cfloat} + pciDomain::UInt32 + pciBus::UInt32 + pciDevice::UInt32 + pciFunction::UInt32 end -struct VkDebugUtilsObjectNameInfoEXT +struct VkDisplayNativeHdrSurfaceCapabilitiesAMD sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - pObjectName::Ptr{Cchar} + localDimmingSupport::VkBool32 end -struct VkDebugUtilsMessengerCallbackDataEXT +struct VkSwapchainDisplayNativeHdrCreateInfoAMD sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName::Ptr{Cchar} - messageIdNumber::Int32 - pMessage::Ptr{Cchar} - queueLabelCount::UInt32 - pQueueLabels::Ptr{VkDebugUtilsLabelEXT} - cmdBufLabelCount::UInt32 - pCmdBufLabels::Ptr{VkDebugUtilsLabelEXT} - objectCount::UInt32 - pObjects::Ptr{VkDebugUtilsObjectNameInfoEXT} + localDimmingEnable::VkBool32 end -# typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT ) ( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDebugUtilsMessengerCallbackEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) +const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} -struct VkDebugUtilsMessengerCreateInfoEXT +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) + ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) + ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +end + +struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity::VkDebugUtilsMessageSeverityFlagsEXT - messageType::VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback::PFN_vkDebugUtilsMessengerCallbackEXT - pUserData::Ptr{Cvoid} + fragmentDensityMap::VkBool32 + fragmentDensityMapDynamic::VkBool32 + fragmentDensityMapNonSubsampledImages::VkBool32 end -struct VkDebugUtilsObjectTagInfoEXT +struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - objectType::VkObjectType - objectHandle::UInt64 - tagName::UInt64 - tagSize::Csize_t - pTag::Ptr{Cvoid} + minFragmentDensityTexelSize::VkExtent2D + maxFragmentDensityTexelSize::VkExtent2D + fragmentDensityInvocations::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectNameEXT ) ( VkDevice device , const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) -const PFN_vkSetDebugUtilsObjectNameEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkSetDebugUtilsObjectTagEXT ) ( VkDevice device , const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) -const PFN_vkSetDebugUtilsObjectTagEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueBeginDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueEndDebugUtilsLabelEXT ) ( VkQueue queue ) -const PFN_vkQueueEndDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkQueueInsertDebugUtilsLabelEXT ) ( VkQueue queue , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkQueueInsertDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBeginDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdBeginDebugUtilsLabelEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdEndDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdEndDebugUtilsLabelEXT = Ptr{Cvoid} +struct VkRenderPassFragmentDensityMapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMapAttachment::VkAttachmentReference +end -# typedef void ( VKAPI_PTR * PFN_vkCmdInsertDebugUtilsLabelEXT ) ( VkCommandBuffer commandBuffer , const VkDebugUtilsLabelEXT * pLabelInfo ) -const PFN_vkCmdInsertDebugUtilsLabelEXT = Ptr{Cvoid} +const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateDebugUtilsMessengerEXT ) ( VkInstance instance , const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugUtilsMessengerEXT * pMessenger ) -const PFN_vkCreateDebugUtilsMessengerEXT = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures -# typedef void ( VKAPI_PTR * PFN_vkDestroyDebugUtilsMessengerEXT ) ( VkInstance instance , VkDebugUtilsMessengerEXT messenger , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyDebugUtilsMessengerEXT = Ptr{Cvoid} +const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties -# typedef void ( VKAPI_PTR * PFN_vkSubmitDebugUtilsMessageEXT ) ( VkInstance instance , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity , VkDebugUtilsMessageTypeFlagsEXT messageTypes , const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) -const PFN_vkSubmitDebugUtilsMessageEXT = Ptr{Cvoid} +const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo) - ccall((:vkSetDebugUtilsObjectNameEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) +@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 end -function vkSetDebugUtilsObjectNameEXT(device, pNameInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectNameInfoEXT}), device, pNameInfo) -end +const VkShaderCorePropertiesFlagsAMD = VkFlags -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo) - ccall((:vkSetDebugUtilsObjectTagEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +struct VkPhysicalDeviceShaderCoreProperties2AMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount::UInt32 end -function vkSetDebugUtilsObjectTagEXT(device, pTagInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkDebugUtilsObjectTagInfoEXT}), device, pTagInfo) +struct VkPhysicalDeviceCoherentMemoryFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceCoherentMemory::VkBool32 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderImageInt64Atomics::VkBool32 + sparseImageInt64Atomics::VkBool32 end -function vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceMemoryBudgetPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + heapBudget::NTuple{16, VkDeviceSize} + heapUsage::NTuple{16, VkDeviceSize} end -function vkQueueEndDebugUtilsLabelEXT(queue) - ccall((:vkQueueEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue,), queue) +struct VkPhysicalDeviceMemoryPriorityFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryPriority::VkBool32 end -function vkQueueEndDebugUtilsLabelEXT(queue, fptr) - ccall(fptr, Cvoid, (VkQueue,), queue) +struct VkMemoryPriorityAllocateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + priority::Cfloat end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo) - ccall((:vkQueueInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + dedicatedAllocationImageAliasing::VkBool32 end -function vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{VkDebugUtilsLabelEXT}), queue, pLabelInfo) +struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + bufferDeviceAddress::VkBool32 + bufferDeviceAddressCaptureReplay::VkBool32 + bufferDeviceAddressMultiDevice::VkBool32 end -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdBeginDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT -function vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) -end +const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo -function vkCmdEndDebugUtilsLabelEXT(commandBuffer) - ccall((:vkCmdEndDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkBufferDeviceAddressCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceAddress::VkDeviceAddress end -function vkCmdEndDebugUtilsLabelEXT(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) -end +# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) +const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo) - ccall((:vkCmdInsertDebugUtilsLabelEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkGetBufferDeviceAddressEXT(device, pInfo) + ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkDebugUtilsLabelEXT}), commandBuffer, pLabelInfo) +function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) + ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) end -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) - ccall((:vkCreateDebugUtilsMessengerEXT, libvulkan), VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits -function vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkDebugUtilsMessengerCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkDebugUtilsMessengerEXT}), instance, pCreateInfo, pAllocator, pMessenger) -end +const VkToolPurposeFlagsEXT = VkToolPurposeFlags -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator) - ccall((:vkDestroyDebugUtilsMessengerEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties -function vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessengerEXT, Ptr{VkAllocationCallbacks}), instance, messenger, pAllocator) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) +const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData) - ccall((:vkSubmitDebugUtilsMessageEXT, libvulkan), Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) + ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -function vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, fptr) - ccall(fptr, Cvoid, (VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, Ptr{VkDebugUtilsMessengerCallbackDataEXT}), instance, messageSeverity, messageTypes, pCallbackData) +function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) end -const VkSamplerReductionModeEXT = VkSamplerReductionMode - -const VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo - -const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties - -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures - -const VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties - -const VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock +const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo -const VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo +@cenum VkValidationFeatureEnableEXT::UInt32 begin + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +end -struct VkSampleLocationEXT - x::Cfloat - y::Cfloat +@cenum VkValidationFeatureDisableEXT::UInt32 begin + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 end -struct VkSampleLocationsInfoEXT +struct VkValidationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationsPerPixel::VkSampleCountFlagBits - sampleLocationGridSize::VkExtent2D - sampleLocationsCount::UInt32 - pSampleLocations::Ptr{VkSampleLocationEXT} -end - -struct VkAttachmentSampleLocationsEXT - attachmentIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT + enabledValidationFeatureCount::UInt32 + pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} + disabledValidationFeatureCount::UInt32 + pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} end -struct VkSubpassSampleLocationsEXT - subpassIndex::UInt32 - sampleLocationsInfo::VkSampleLocationsInfoEXT +@cenum VkComponentTypeNV::UInt32 begin + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 end -struct VkRenderPassSampleLocationsBeginInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - attachmentInitialSampleLocationsCount::UInt32 - pAttachmentInitialSampleLocations::Ptr{VkAttachmentSampleLocationsEXT} - postSubpassSampleLocationsCount::UInt32 - pPostSubpassSampleLocations::Ptr{VkSubpassSampleLocationsEXT} +@cenum VkScopeNV::UInt32 begin + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VK_SCOPE_MAX_ENUM_NV = 2147483647 end -struct VkPipelineSampleLocationsStateCreateInfoEXT +struct VkCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationsEnable::VkBool32 - sampleLocationsInfo::VkSampleLocationsInfoEXT + MSize::UInt32 + NSize::UInt32 + KSize::UInt32 + AType::VkComponentTypeNV + BType::VkComponentTypeNV + CType::VkComponentTypeNV + DType::VkComponentTypeNV + scope::VkScopeNV end -struct VkPhysicalDeviceSampleLocationsPropertiesEXT +struct VkPhysicalDeviceCooperativeMatrixFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - sampleLocationSampleCounts::VkSampleCountFlags - maxSampleLocationGridSize::VkExtent2D - sampleLocationCoordinateRange::NTuple{2, Cfloat} - sampleLocationSubPixelBits::UInt32 - variableSampleLocations::VkBool32 + cooperativeMatrix::VkBool32 + cooperativeMatrixRobustBufferAccess::VkBool32 end -struct VkMultisamplePropertiesEXT +struct VkPhysicalDeviceCooperativeMatrixPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - maxSampleLocationGridSize::VkExtent2D + cooperativeMatrixSupportedStages::VkShaderStageFlags end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEXT ) ( VkCommandBuffer commandBuffer , const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) -const PFN_vkCmdSetSampleLocationsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) ( VkPhysicalDevice physicalDevice , VkSampleCountFlagBits samples , VkMultisamplePropertiesEXT * pMultisampleProperties ) -const PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Ptr{Cvoid} - -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo) - ccall((:vkCmdSetSampleLocationsEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) +const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} -function vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkSampleLocationsInfoEXT}), commandBuffer, pSampleLocationsInfo) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) + ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties) - ccall((:vkGetPhysicalDeviceMultisamplePropertiesEXT, libvulkan), Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) end -function vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, fptr) - ccall(fptr, Cvoid, (VkPhysicalDevice, VkSampleCountFlagBits, Ptr{VkMultisamplePropertiesEXT}), physicalDevice, samples, pMultisampleProperties) +@cenum VkCoverageReductionModeNV::UInt32 begin + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 end -@cenum VkBlendOverlapEXT::UInt32 begin - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647 -end +const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags -struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT +struct VkPhysicalDeviceCoverageReductionModeFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendCoherentOperations::VkBool32 + coverageReductionMode::VkBool32 end -struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT +struct VkPipelineCoverageReductionStateCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - advancedBlendMaxColorAttachments::UInt32 - advancedBlendIndependentBlend::VkBool32 - advancedBlendNonPremultipliedSrcColor::VkBool32 - advancedBlendNonPremultipliedDstColor::VkBool32 - advancedBlendCorrelatedOverlap::VkBool32 - advancedBlendAllOperations::VkBool32 + flags::VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode::VkCoverageReductionModeNV end -struct VkPipelineColorBlendAdvancedStateCreateInfoEXT +struct VkFramebufferMixedSamplesCombinationNV sType::VkStructureType pNext::Ptr{Cvoid} - srcPremultiplied::VkBool32 - dstPremultiplied::VkBool32 - blendOverlap::VkBlendOverlapEXT + coverageReductionMode::VkCoverageReductionModeNV + rasterizationSamples::VkSampleCountFlagBits + depthStencilSamples::VkSampleCountFlags + colorSamples::VkSampleCountFlags end -const VkPipelineCoverageToColorStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageToColorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable::VkBool32 - coverageToColorLocation::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) +const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} -@cenum VkCoverageModulationModeNV::UInt32 begin - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647 +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) + ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -const VkPipelineCoverageModulationStateCreateFlagsNV = VkFlags - -struct VkPipelineCoverageModulationStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode::VkCoverageModulationModeNV - coverageModulationTableEnable::VkBool32 - coverageModulationTableCount::UInt32 - pCoverageModulationTable::Ptr{Cfloat} +function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) end -struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV +struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMCount::UInt32 - shaderWarpsPerSM::UInt32 + fragmentShaderSampleInterlock::VkBool32 + fragmentShaderPixelInterlock::VkBool32 + fragmentShaderShadingRateInterlock::VkBool32 end -struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV +struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderSMBuiltins::VkBool32 + ycbcrImageArrays::VkBool32 end -struct VkDrmFormatModifierPropertiesEXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags +@cenum VkProvokingVertexModeEXT::UInt32 begin + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 end -struct VkDrmFormatModifierPropertiesListEXT +struct VkPhysicalDeviceProvokingVertexFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierPropertiesEXT} + provokingVertexLast::VkBool32 + transformFeedbackPreservesProvokingVertex::VkBool32 end -struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT +struct VkPhysicalDeviceProvokingVertexPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - sharingMode::VkSharingMode - queueFamilyIndexCount::UInt32 - pQueueFamilyIndices::Ptr{UInt32} + provokingVertexModePerPipeline::VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 end -struct VkImageDrmFormatModifierListCreateInfoEXT +struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifiers::Ptr{UInt64} + provokingVertexMode::VkProvokingVertexModeEXT end -struct VkImageDrmFormatModifierExplicitCreateInfoEXT +const VkHeadlessSurfaceCreateFlagsEXT = VkFlags + +struct VkHeadlessSurfaceCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - pPlaneLayouts::Ptr{VkSubresourceLayout} + flags::VkHeadlessSurfaceCreateFlagsEXT end -struct VkImageDrmFormatModifierPropertiesEXT +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) +const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) + ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) + ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) +end + +@cenum VkLineRasterizationModeEXT::UInt32 begin + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceLineRasterizationFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifier::UInt64 + rectangularLines::VkBool32 + bresenhamLines::VkBool32 + smoothLines::VkBool32 + stippledRectangularLines::VkBool32 + stippledBresenhamLines::VkBool32 + stippledSmoothLines::VkBool32 end -struct VkDrmFormatModifierProperties2EXT - drmFormatModifier::UInt64 - drmFormatModifierPlaneCount::UInt32 - drmFormatModifierTilingFeatures::VkFormatFeatureFlags2 +struct VkPhysicalDeviceLineRasterizationPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + lineSubPixelPrecisionBits::UInt32 end -struct VkDrmFormatModifierPropertiesList2EXT +struct VkPipelineRasterizationLineStateCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - drmFormatModifierCount::UInt32 - pDrmFormatModifierProperties::Ptr{VkDrmFormatModifierProperties2EXT} + lineRasterizationMode::VkLineRasterizationModeEXT + stippledLineEnable::VkBool32 + lineStippleFactor::UInt32 + lineStipplePattern::UInt16 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageDrmFormatModifierPropertiesEXT ) ( VkDevice device , VkImage image , VkImageDrmFormatModifierPropertiesEXT * pProperties ) -const PFN_vkGetImageDrmFormatModifierPropertiesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) +const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties) - ccall((:vkGetImageDrmFormatModifierPropertiesEXT, libvulkan), VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) + ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -function vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkImage, Ptr{VkImageDrmFormatModifierPropertiesEXT}), device, image, pProperties) +function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) end -const VkValidationCacheEXT_T = Cvoid +struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat32Atomics::VkBool32 + shaderBufferFloat32AtomicAdd::VkBool32 + shaderBufferFloat64Atomics::VkBool32 + shaderBufferFloat64AtomicAdd::VkBool32 + shaderSharedFloat32Atomics::VkBool32 + shaderSharedFloat32AtomicAdd::VkBool32 + shaderSharedFloat64Atomics::VkBool32 + shaderSharedFloat64AtomicAdd::VkBool32 + shaderImageFloat32Atomics::VkBool32 + shaderImageFloat32AtomicAdd::VkBool32 + sparseImageFloat32Atomics::VkBool32 + sparseImageFloat32AtomicAdd::VkBool32 +end -const VkValidationCacheEXT = Ptr{VkValidationCacheEXT_T} +const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures -@cenum VkValidationCacheHeaderVersionEXT::UInt32 begin - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) +const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} + +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) + ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) end -const VkValidationCacheCreateFlagsEXT = VkFlags +function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) + ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +end -struct VkValidationCacheCreateInfoEXT +struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkValidationCacheCreateFlagsEXT - initialDataSize::Csize_t - pInitialData::Ptr{Cvoid} + indexTypeUint8::VkBool32 end -struct VkShaderModuleValidationCacheCreateInfoEXT +struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - validationCache::VkValidationCacheEXT + extendedDynamicState::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateValidationCacheEXT ) ( VkDevice device , const VkValidationCacheCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkValidationCacheEXT * pValidationCache ) -const PFN_vkCreateValidationCacheEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) +const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkDestroyValidationCacheEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyValidationCacheEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) +const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkMergeValidationCachesEXT ) ( VkDevice device , VkValidationCacheEXT dstCache , uint32_t srcCacheCount , const VkValidationCacheEXT * pSrcCaches ) -const PFN_vkMergeValidationCachesEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) +const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetValidationCacheDataEXT ) ( VkDevice device , VkValidationCacheEXT validationCache , size_t * pDataSize , void * pData ) -const PFN_vkGetValidationCacheDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) +const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache) - ccall((:vkCreateValidationCacheEXT, libvulkan), VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) +const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} -function vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkValidationCacheCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkValidationCacheEXT}), device, pCreateInfo, pAllocator, pValidationCache) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) +const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator) - ccall((:vkDestroyValidationCacheEXT, libvulkan), Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) +const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} -function vkDestroyValidationCacheEXT(device, validationCache, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkValidationCacheEXT, Ptr{VkAllocationCallbacks}), device, validationCache, pAllocator) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) +const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) +const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) +const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) +const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) +const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} + +function vkCmdSetCullModeEXT(commandBuffer, cullMode) + ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches) - ccall((:vkMergeValidationCachesEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) end -function vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, UInt32, Ptr{VkValidationCacheEXT}), device, dstCache, srcCacheCount, pSrcCaches) +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) + ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData) - ccall((:vkGetValidationCacheDataEXT, libvulkan), VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) end -function vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkValidationCacheEXT, Ptr{Csize_t}, Ptr{Cvoid}), device, validationCache, pDataSize, pData) +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) + ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) end -const VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBits +function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +end -const VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) + ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end -const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo +function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +end -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) + ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end -const VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties +function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +end -const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport +function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +end -@cenum VkShadingRatePaletteEntryNV::UInt32 begin - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) + ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -@cenum VkCoarseSampleOrderTypeNV::UInt32 begin - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647 +function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) end -struct VkShadingRatePaletteNV - shadingRatePaletteEntryCount::UInt32 - pShadingRatePaletteEntries::Ptr{VkShadingRatePaletteEntryNV} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) + ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPipelineViewportShadingRateImageStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImageEnable::VkBool32 - viewportCount::UInt32 - pShadingRatePalettes::Ptr{VkShadingRatePaletteNV} +function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) end -struct VkPhysicalDeviceShadingRateImageFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateImage::VkBool32 - shadingRateCoarseSampleOrder::VkBool32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) + ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -struct VkPhysicalDeviceShadingRateImagePropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shadingRateTexelSize::VkExtent2D - shadingRatePaletteSize::UInt32 - shadingRateMaxCoarseSamples::UInt32 +function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) end -struct VkCoarseSampleLocationNV - pixelX::UInt32 - pixelY::UInt32 - sample::UInt32 +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) + ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -struct VkCoarseSampleOrderCustomNV - shadingRate::VkShadingRatePaletteEntryNV - sampleCount::UInt32 - sampleLocationCount::UInt32 - pSampleLocations::Ptr{VkCoarseSampleLocationNV} +function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) end -struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - sampleOrderType::VkCoarseSampleOrderTypeNV - customSampleOrderCount::UInt32 - pCustomSampleOrders::Ptr{VkCoarseSampleOrderCustomNV} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) + ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindShadingRateImageNV ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindShadingRateImageNV = Ptr{Cvoid} +function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportShadingRatePaletteNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkShadingRatePaletteNV * pShadingRatePalettes ) -const PFN_vkCmdSetViewportShadingRatePaletteNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoarseSampleOrderNV ) ( VkCommandBuffer commandBuffer , VkCoarseSampleOrderTypeNV sampleOrderType , uint32_t customSampleOrderCount , const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) -const PFN_vkCmdSetCoarseSampleOrderNV = Ptr{Cvoid} +function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindShadingRateImageNV, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderBufferFloat16Atomics::VkBool32 + shaderBufferFloat16AtomicAdd::VkBool32 + shaderBufferFloat16AtomicMinMax::VkBool32 + shaderBufferFloat32AtomicMinMax::VkBool32 + shaderBufferFloat64AtomicMinMax::VkBool32 + shaderSharedFloat16Atomics::VkBool32 + shaderSharedFloat16AtomicAdd::VkBool32 + shaderSharedFloat16AtomicMinMax::VkBool32 + shaderSharedFloat32AtomicMinMax::VkBool32 + shaderSharedFloat64AtomicMinMax::VkBool32 + shaderImageFloat32AtomicMinMax::VkBool32 + sparseImageFloat32AtomicMinMax::VkBool32 end -function vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkPresentScalingFlagBitsEXT::UInt32 begin + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 1 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 2 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 4 + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - ccall((:vkCmdSetViewportShadingRatePaletteNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) -end +const VkPresentScalingFlagsEXT = VkFlags -function vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkShadingRatePaletteNV}), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) +@cenum VkPresentGravityFlagBitsEXT::UInt32 begin + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 1 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 2 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 4 + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) - ccall((:vkCmdSetCoarseSampleOrderNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) -end +const VkPresentGravityFlagsEXT = VkFlags -function vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCoarseSampleOrderTypeNV, UInt32, Ptr{VkCoarseSampleOrderCustomNV}), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) +struct VkSurfacePresentModeEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentMode::VkPresentModeKHR end -const VkAccelerationStructureNV_T = Cvoid - -const VkAccelerationStructureNV = Ptr{VkAccelerationStructureNV_T} +struct VkSurfacePresentScalingCapabilitiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedPresentScaling::VkPresentScalingFlagsEXT + supportedPresentGravityX::VkPresentGravityFlagsEXT + supportedPresentGravityY::VkPresentGravityFlagsEXT + minScaledImageExtent::VkExtent2D + maxScaledImageExtent::VkExtent2D +end -@cenum VkRayTracingShaderGroupTypeKHR::UInt32 begin - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2 - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSurfacePresentModeCompatibilityEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR +struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainMaintenance1::VkBool32 +end -@cenum VkGeometryTypeKHR::UInt32 begin - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0 - VK_GEOMETRY_TYPE_AABBS_NV = 1 - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSwapchainPresentFenceInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pFences::Ptr{VkFence} end -const VkGeometryTypeNV = VkGeometryTypeKHR +struct VkSwapchainPresentModesCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + presentModeCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} +end -@cenum VkAccelerationStructureTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1 - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkSwapchainPresentModeInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchainCount::UInt32 + pPresentModes::Ptr{VkPresentModeKHR} end -const VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR +struct VkSwapchainPresentScalingCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + scalingBehavior::VkPresentScalingFlagsEXT + presentGravityX::VkPresentGravityFlagsEXT + presentGravityY::VkPresentGravityFlagsEXT +end -@cenum VkCopyAccelerationStructureModeKHR::UInt32 begin - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +struct VkReleaseSwapchainImagesInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + swapchain::VkSwapchainKHR + imageIndexCount::UInt32 + pImageIndices::Ptr{UInt32} end -const VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR +# typedef VkResult ( VKAPI_PTR * PFN_vkReleaseSwapchainImagesEXT ) ( VkDevice device , const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) +const PFN_vkReleaseSwapchainImagesEXT = Ptr{Cvoid} -@cenum VkAccelerationStructureMemoryRequirementsTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647 +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo) + ccall((:vkReleaseSwapchainImagesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -@cenum VkGeometryFlagBitsKHR::UInt32 begin - VK_GEOMETRY_OPAQUE_BIT_KHR = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2 - VK_GEOMETRY_OPAQUE_BIT_NV = 1 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2 - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +function vkReleaseSwapchainImagesEXT(device, pReleaseInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkReleaseSwapchainImagesInfoEXT}), device, pReleaseInfo) end -const VkGeometryFlagsKHR = VkFlags +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures -const VkGeometryFlagsNV = VkGeometryFlagsKHR +const VkIndirectCommandsLayoutNV_T = Cvoid -const VkGeometryFlagBitsNV = VkGeometryFlagBitsKHR +const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} -@cenum VkGeometryInstanceFlagBitsKHR::UInt32 begin - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2 - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1 - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8 - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 end -const VkGeometryInstanceFlagsKHR = VkFlags - -const VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR +@cenum VkIndirectStateFlagBitsNV::UInt32 begin + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +end -const VkGeometryInstanceFlagBitsNV = VkGeometryInstanceFlagBitsKHR +const VkIndirectStateFlagsNV = VkFlags -@cenum VkBuildAccelerationStructureFlagBitsKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16 - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 +@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -const VkBuildAccelerationStructureFlagsKHR = VkFlags - -const VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR +const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags -const VkBuildAccelerationStructureFlagBitsNV = VkBuildAccelerationStructureFlagBitsKHR +struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxGraphicsShaderGroupCount::UInt32 + maxIndirectSequenceCount::UInt32 + maxIndirectCommandsTokenCount::UInt32 + maxIndirectCommandsStreamCount::UInt32 + maxIndirectCommandsTokenOffset::UInt32 + maxIndirectCommandsStreamStride::UInt32 + minSequencesCountBufferOffsetAlignment::UInt32 + minSequencesIndexBufferOffsetAlignment::UInt32 + minIndirectCommandsBufferOffsetAlignment::UInt32 +end -struct VkRayTracingShaderGroupCreateInfoNV +struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkRayTracingShaderGroupTypeKHR - generalShader::UInt32 - closestHitShader::UInt32 - anyHitShader::UInt32 - intersectionShader::UInt32 + deviceGeneratedCommands::VkBool32 end -struct VkRayTracingPipelineCreateInfoNV +struct VkGraphicsShaderGroupCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCreateFlags stageCount::UInt32 pStages::Ptr{VkPipelineShaderStageCreateInfo} - groupCount::UInt32 - pGroups::Ptr{VkRayTracingShaderGroupCreateInfoNV} - maxRecursionDepth::UInt32 - layout::VkPipelineLayout - basePipelineHandle::VkPipeline - basePipelineIndex::Int32 + pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} + pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} end -struct VkGeometryTrianglesNV +struct VkGraphicsPipelineShaderGroupsCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - vertexData::VkBuffer - vertexOffset::VkDeviceSize - vertexCount::UInt32 - vertexStride::VkDeviceSize - vertexFormat::VkFormat - indexData::VkBuffer - indexOffset::VkDeviceSize - indexCount::UInt32 + groupCount::UInt32 + pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} + pipelineCount::UInt32 + pPipelines::Ptr{VkPipeline} +end + +struct VkBindShaderGroupIndirectCommandNV + groupIndex::UInt32 +end + +struct VkBindIndexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 indexType::VkIndexType - transformData::VkBuffer - transformOffset::VkDeviceSize end -struct VkGeometryAABBNV - sType::VkStructureType - pNext::Ptr{Cvoid} - aabbData::VkBuffer - numAABBs::UInt32 +struct VkBindVertexBufferIndirectCommandNV + bufferAddress::VkDeviceAddress + size::UInt32 stride::UInt32 - offset::VkDeviceSize end -struct VkGeometryDataNV - triangles::VkGeometryTrianglesNV - aabbs::VkGeometryAABBNV +struct VkSetStateFlagsIndirectCommandNV + data::UInt32 end -struct VkGeometryNV +struct VkIndirectCommandsStreamNV + buffer::VkBuffer + offset::VkDeviceSize +end + +struct VkIndirectCommandsLayoutTokenNV sType::VkStructureType pNext::Ptr{Cvoid} - geometryType::VkGeometryTypeKHR - geometry::VkGeometryDataNV - flags::VkGeometryFlagsKHR + tokenType::VkIndirectCommandsTokenTypeNV + stream::UInt32 + offset::UInt32 + vertexBindingUnit::UInt32 + vertexDynamicStride::VkBool32 + pushconstantPipelineLayout::VkPipelineLayout + pushconstantShaderStageFlags::VkShaderStageFlags + pushconstantOffset::UInt32 + pushconstantSize::UInt32 + indirectStateFlags::VkIndirectStateFlagsNV + indexTypeCount::UInt32 + pIndexTypes::Ptr{VkIndexType} + pIndexTypeValues::Ptr{UInt32} end -struct VkAccelerationStructureInfoNV +struct VkIndirectCommandsLayoutCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkAccelerationStructureTypeNV - flags::VkBuildAccelerationStructureFlagsNV - instanceCount::UInt32 - geometryCount::UInt32 - pGeometries::Ptr{VkGeometryNV} + flags::VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint::VkPipelineBindPoint + tokenCount::UInt32 + pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} + streamCount::UInt32 + pStreamStrides::Ptr{UInt32} end -struct VkAccelerationStructureCreateInfoNV +struct VkGeneratedCommandsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - compactedSize::VkDeviceSize - info::VkAccelerationStructureInfoNV + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + streamCount::UInt32 + pStreams::Ptr{VkIndirectCommandsStreamNV} + sequencesCount::UInt32 + preprocessBuffer::VkBuffer + preprocessOffset::VkDeviceSize + preprocessSize::VkDeviceSize + sequencesCountBuffer::VkBuffer + sequencesCountOffset::VkDeviceSize + sequencesIndexBuffer::VkBuffer + sequencesIndexOffset::VkDeviceSize end -struct VkBindAccelerationStructureMemoryInfoNV +struct VkGeneratedCommandsMemoryRequirementsInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - accelerationStructure::VkAccelerationStructureNV - memory::VkDeviceMemory - memoryOffset::VkDeviceSize - deviceIndexCount::UInt32 - pDeviceIndices::Ptr{UInt32} + pipelineBindPoint::VkPipelineBindPoint + pipeline::VkPipeline + indirectCommandsLayout::VkIndirectCommandsLayoutNV + maxSequencesCount::UInt32 end -struct VkWriteDescriptorSetAccelerationStructureNV - sType::VkStructureType - pNext::Ptr{Cvoid} - accelerationStructureCount::UInt32 - pAccelerationStructures::Ptr{VkAccelerationStructureNV} +# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) +const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) +const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) +const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) +const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} + +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) + ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkAccelerationStructureMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - type::VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure::VkAccelerationStructureNV +function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) end -struct VkPhysicalDeviceRayTracingPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderGroupHandleSize::UInt32 - maxRecursionDepth::UInt32 - maxShaderGroupStride::UInt32 - shaderGroupBaseAlignment::UInt32 - maxGeometryCount::UInt64 - maxInstanceCount::UInt64 - maxTriangleCount::UInt64 - maxDescriptorSetAccelerationStructures::UInt32 +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) + ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -struct VkTransformMatrixKHR - matrix::NTuple{3, NTuple{4, Cfloat}} +function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) end -const VkTransformMatrixNV = VkTransformMatrixKHR +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +end -struct VkAabbPositionsKHR - minX::Cfloat - minY::Cfloat - minZ::Cfloat - maxX::Cfloat - maxY::Cfloat - maxZ::Cfloat +function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) end -const VkAabbPositionsNV = VkAabbPositionsKHR +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +end -struct VkAccelerationStructureInstanceKHR - data::NTuple{64, UInt8} +function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) end -function Base.getproperty(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol) - f === :transform && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 48), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 48), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 52), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 52), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 56) - return getfield(x, f) +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function Base.getproperty(x::VkAccelerationStructureInstanceKHR, f::Symbol) - r = Ref{VkAccelerationStructureInstanceKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureInstanceKHR}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) + ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -function VkAccelerationStructureInstanceKHR(transform::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureInstanceKHR}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureInstanceKHR}, ref) - ptr.transform = transform - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) end -const VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR +struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + inheritedViewportScissor2D::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateAccelerationStructureNV ) ( VkDevice device , const VkAccelerationStructureCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkAccelerationStructureNV * pAccelerationStructure ) -const PFN_vkCreateAccelerationStructureNV = Ptr{Cvoid} +struct VkCommandBufferInheritanceViewportScissorInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + viewportScissor2D::VkBool32 + viewportDepthCount::UInt32 + pViewportDepths::Ptr{VkViewport} +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyAccelerationStructureNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyAccelerationStructureNV = Ptr{Cvoid} +struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + texelBufferAlignment::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkGetAccelerationStructureMemoryRequirementsNV ) ( VkDevice device , const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2KHR * pMemoryRequirements ) -const PFN_vkGetAccelerationStructureMemoryRequirementsNV = Ptr{Cvoid} +const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties -# typedef VkResult ( VKAPI_PTR * PFN_vkBindAccelerationStructureMemoryNV ) ( VkDevice device , uint32_t bindInfoCount , const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) -const PFN_vkBindAccelerationStructureMemoryNV = Ptr{Cvoid} +struct VkRenderPassTransformBeginInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBuildAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , const VkAccelerationStructureInfoNV * pInfo , VkBuffer instanceData , VkDeviceSize instanceOffset , VkBool32 update , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkBuffer scratch , VkDeviceSize scratchOffset ) -const PFN_vkCmdBuildAccelerationStructureNV = Ptr{Cvoid} +struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR + renderArea::VkRect2D +end -# typedef void ( VKAPI_PTR * PFN_vkCmdCopyAccelerationStructureNV ) ( VkCommandBuffer commandBuffer , VkAccelerationStructureNV dst , VkAccelerationStructureNV src , VkCopyAccelerationStructureModeKHR mode ) -const PFN_vkCmdCopyAccelerationStructureNV = Ptr{Cvoid} +@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdTraceRaysNV ) ( VkCommandBuffer commandBuffer , VkBuffer raygenShaderBindingTableBuffer , VkDeviceSize raygenShaderBindingOffset , VkBuffer missShaderBindingTableBuffer , VkDeviceSize missShaderBindingOffset , VkDeviceSize missShaderBindingStride , VkBuffer hitShaderBindingTableBuffer , VkDeviceSize hitShaderBindingOffset , VkDeviceSize hitShaderBindingStride , VkBuffer callableShaderBindingTableBuffer , VkDeviceSize callableShaderBindingOffset , VkDeviceSize callableShaderBindingStride , uint32_t width , uint32_t height , uint32_t depth ) -const PFN_vkCmdTraceRaysNV = Ptr{Cvoid} +const VkDeviceMemoryReportFlagsEXT = VkFlags -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateRayTracingPipelinesNV ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkRayTracingPipelineCreateInfoNV * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) -const PFN_vkCreateRayTracingPipelinesNV = Ptr{Cvoid} +struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + deviceMemoryReport::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesKHR ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesKHR = Ptr{Cvoid} +struct VkDeviceMemoryReportCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + type::VkDeviceMemoryReportEventTypeEXT + memoryObjectId::UInt64 + size::VkDeviceSize + objectType::VkObjectType + objectHandle::UInt64 + heapIndex::UInt32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetRayTracingShaderGroupHandlesNV ) ( VkDevice device , VkPipeline pipeline , uint32_t firstGroup , uint32_t groupCount , size_t dataSize , void * pData ) -const PFN_vkGetRayTracingShaderGroupHandlesNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) +const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureHandleNV ) ( VkDevice device , VkAccelerationStructureNV accelerationStructure , size_t dataSize , void * pData ) -const PFN_vkGetAccelerationStructureHandleNV = Ptr{Cvoid} +struct VkDeviceDeviceMemoryReportCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceMemoryReportFlagsEXT + pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT + pUserData::Ptr{Cvoid} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) ( VkCommandBuffer commandBuffer , uint32_t accelerationStructureCount , const VkAccelerationStructureNV * pAccelerationStructures , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) -const PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) +const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkCompileDeferredNV ) ( VkDevice device , VkPipeline pipeline , uint32_t shader ) -const PFN_vkCompileDeferredNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) +const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure) - ccall((:vkCreateAccelerationStructureNV, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) + ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) end -function vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkAccelerationStructureNV}), device, pCreateInfo, pAllocator, pAccelerationStructure) +function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator) - ccall((:vkDestroyAccelerationStructureNV, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) + ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureNV, Ptr{VkAllocationCallbacks}), device, accelerationStructure, pAllocator) +function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetAccelerationStructureMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkPhysicalDeviceRobustness2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustBufferAccess2::VkBool32 + robustImageAccess2::VkBool32 + nullDescriptor::VkBool32 end -function vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkAccelerationStructureMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2KHR}), device, pInfo, pMemoryRequirements) +struct VkPhysicalDeviceRobustness2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + robustStorageBufferAccessSizeAlignment::VkDeviceSize + robustUniformBufferAccessSizeAlignment::VkDeviceSize end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos) - ccall((:vkBindAccelerationStructureMemoryNV, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkSamplerCustomBorderColorCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColor::VkClearColorValue + format::VkFormat end -function vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkBindAccelerationStructureMemoryInfoNV}), device, bindInfoCount, pBindInfos) +struct VkPhysicalDeviceCustomBorderColorPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxCustomBorderColorSamplers::UInt32 end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - ccall((:vkCmdBuildAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkPhysicalDeviceCustomBorderColorFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + customBorderColors::VkBool32 + customBorderColorWithoutFormat::VkBool32 end -function vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkAccelerationStructureInfoNV}, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) +struct VkPhysicalDevicePresentBarrierFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrier::VkBool32 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode) - ccall((:vkCmdCopyAccelerationStructureNV, libvulkan), Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkSurfaceCapabilitiesPresentBarrierNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierSupported::VkBool32 end -function vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR), commandBuffer, dst, src, mode) +struct VkSwapchainPresentBarrierCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + presentBarrierEnable::VkBool32 end -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - ccall((:vkCmdTraceRaysNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkPrivateDataSlotEXT = VkPrivateDataSlot -function vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, UInt32, UInt32, UInt32), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) -end +const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - ccall((:vkCreateRayTracingPipelinesNV, libvulkan), VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures -function vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) -end +const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo -function vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) +const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingShaderGroupHandlesNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} -function vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) +const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) +const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} + +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) + ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData) - ccall((:vkGetAccelerationStructureHandleNV, libvulkan), VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) end -function vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkAccelerationStructureNV, Csize_t, Ptr{Cvoid}), device, accelerationStructure, dataSize, pData) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) + ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - ccall((:vkCmdWriteAccelerationStructuresPropertiesNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) end -function vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkAccelerationStructureNV}, VkQueryType, VkQueryPool, UInt32), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) + ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkCompileDeferredNV(device, pipeline, shader) - ccall((:vkCompileDeferredNV, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) + ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) end -function vkCompileDeferredNV(device, pipeline, shader, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32), device, pipeline, shader) +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) + ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTest::VkBool32 +function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) end -struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - representativeFragmentTestEnable::VkBool32 +const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + +@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8 + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceImageViewImageFormatInfoEXT +const VkDeviceDiagnosticsConfigFlagsNV = VkFlags + +struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - imageViewType::VkImageViewType + diagnosticsConfig::VkBool32 end -struct VkFilterCubicImageViewImageFormatPropertiesEXT +struct VkDeviceDiagnosticsConfigCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - filterCubic::VkBool32 - filterCubicMinmax::VkBool32 + flags::VkDeviceDiagnosticsConfigFlagsNV end -const VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR +const VkAccelerationStructureKHR_T = Cvoid -const VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR +const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} -struct VkImportMemoryHostPointerInfoEXT +struct VkPhysicalDeviceDescriptorBufferPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - handleType::VkExternalMemoryHandleTypeFlagBits - pHostPointer::Ptr{Cvoid} + combinedImageSamplerDescriptorSingleArray::VkBool32 + bufferlessPushDescriptors::VkBool32 + allowSamplerImageViewPostSubmitCreation::VkBool32 + descriptorBufferOffsetAlignment::VkDeviceSize + maxDescriptorBufferBindings::UInt32 + maxResourceDescriptorBufferBindings::UInt32 + maxSamplerDescriptorBufferBindings::UInt32 + maxEmbeddedImmutableSamplerBindings::UInt32 + maxEmbeddedImmutableSamplers::UInt32 + bufferCaptureReplayDescriptorDataSize::Csize_t + imageCaptureReplayDescriptorDataSize::Csize_t + imageViewCaptureReplayDescriptorDataSize::Csize_t + samplerCaptureReplayDescriptorDataSize::Csize_t + accelerationStructureCaptureReplayDescriptorDataSize::Csize_t + samplerDescriptorSize::Csize_t + combinedImageSamplerDescriptorSize::Csize_t + sampledImageDescriptorSize::Csize_t + storageImageDescriptorSize::Csize_t + uniformTexelBufferDescriptorSize::Csize_t + robustUniformTexelBufferDescriptorSize::Csize_t + storageTexelBufferDescriptorSize::Csize_t + robustStorageTexelBufferDescriptorSize::Csize_t + uniformBufferDescriptorSize::Csize_t + robustUniformBufferDescriptorSize::Csize_t + storageBufferDescriptorSize::Csize_t + robustStorageBufferDescriptorSize::Csize_t + inputAttachmentDescriptorSize::Csize_t + accelerationStructureDescriptorSize::Csize_t + maxSamplerDescriptorBufferRange::VkDeviceSize + maxResourceDescriptorBufferRange::VkDeviceSize + samplerDescriptorBufferAddressSpaceSize::VkDeviceSize + resourceDescriptorBufferAddressSpaceSize::VkDeviceSize + descriptorBufferAddressSpaceSize::VkDeviceSize end -struct VkMemoryHostPointerPropertiesEXT +struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryTypeBits::UInt32 + combinedImageSamplerDensityMapDescriptorSize::Csize_t end -struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +struct VkPhysicalDeviceDescriptorBufferFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minImportedHostPointerAlignment::VkDeviceSize -end - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryHostPointerPropertiesEXT ) ( VkDevice device , VkExternalMemoryHandleTypeFlagBits handleType , const void * pHostPointer , VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) -const PFN_vkGetMemoryHostPointerPropertiesEXT = Ptr{Cvoid} - -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties) - ccall((:vkGetMemoryHostPointerPropertiesEXT, libvulkan), VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end - -function vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, fptr) - ccall(fptr, VkResult, (VkDevice, VkExternalMemoryHandleTypeFlagBits, Ptr{Cvoid}, Ptr{VkMemoryHostPointerPropertiesEXT}), device, handleType, pHostPointer, pMemoryHostPointerProperties) -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdWriteBufferMarkerAMD ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkBuffer dstBuffer , VkDeviceSize dstOffset , uint32_t marker ) -const PFN_vkCmdWriteBufferMarkerAMD = Ptr{Cvoid} - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - ccall((:vkCmdWriteBufferMarkerAMD, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end - -function vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, UInt32), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) -end - -@cenum VkPipelineCompilerControlFlagBitsAMD::UInt32 begin - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647 + descriptorBuffer::VkBool32 + descriptorBufferCaptureReplay::VkBool32 + descriptorBufferImageLayoutIgnored::VkBool32 + descriptorBufferPushDescriptors::VkBool32 end -const VkPipelineCompilerControlFlagsAMD = VkFlags - -struct VkPipelineCompilerControlCreateInfoAMD +struct VkDescriptorAddressInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - compilerControlFlags::VkPipelineCompilerControlFlagsAMD -end - -@cenum VkTimeDomainEXT::UInt32 begin - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647 + address::VkDeviceAddress + range::VkDeviceSize + format::VkFormat end -struct VkCalibratedTimestampInfoEXT +struct VkDescriptorBufferBindingInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - timeDomain::VkTimeDomainEXT + address::VkDeviceAddress + usage::VkBufferUsageFlags end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pTimeDomainCount , VkTimeDomainEXT * pTimeDomains ) -const PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = Ptr{Cvoid} - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetCalibratedTimestampsEXT ) ( VkDevice device , uint32_t timestampCount , const VkCalibratedTimestampInfoEXT * pTimestampInfos , uint64_t * pTimestamps , uint64_t * pMaxDeviation ) -const PFN_vkGetCalibratedTimestampsEXT = Ptr{Cvoid} - -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains) - ccall((:vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + buffer::VkBuffer end -function vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkTimeDomainEXT}), physicalDevice, pTimeDomainCount, pTimeDomains) +struct VkDescriptorDataEXT + data::NTuple{8, UInt8} end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) - ccall((:vkGetCalibratedTimestampsEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function Base.getproperty(x::Ptr{VkDescriptorDataEXT}, f::Symbol) + f === :pSampler && return Ptr{Ptr{VkSampler}}(x + 0) + f === :pCombinedImageSampler && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pInputAttachmentImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pSampledImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pStorageImage && return Ptr{Ptr{VkDescriptorImageInfo}}(x + 0) + f === :pUniformTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageTexelBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pUniformBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :pStorageBuffer && return Ptr{Ptr{VkDescriptorAddressInfoEXT}}(x + 0) + f === :accelerationStructure && return Ptr{VkDeviceAddress}(x + 0) + return getfield(x, f) end -function vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, fptr) - ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkCalibratedTimestampInfoEXT}, Ptr{UInt64}, Ptr{UInt64}), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) +function Base.getproperty(x::VkDescriptorDataEXT, f::Symbol) + r = Ref{VkDescriptorDataEXT}(x) + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceShaderCorePropertiesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderEngineCount::UInt32 - shaderArraysPerEngineCount::UInt32 - computeUnitsPerShaderArray::UInt32 - simdPerComputeUnit::UInt32 - wavefrontsPerSimd::UInt32 - wavefrontSize::UInt32 - sgprsPerSimd::UInt32 - minSgprAllocation::UInt32 - maxSgprAllocation::UInt32 - sgprAllocationGranularity::UInt32 - vgprsPerSimd::UInt32 - minVgprAllocation::UInt32 - maxVgprAllocation::UInt32 - vgprAllocationGranularity::UInt32 +function Base.setproperty!(x::Ptr{VkDescriptorDataEXT}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -@cenum VkMemoryOverallocationBehaviorAMD::UInt32 begin - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647 +const __U_VkDescriptorDataEXT = Union{Ptr{VkSampler}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorImageInfo}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, Ptr{VkDescriptorAddressInfoEXT}, VkDeviceAddress} + +function VkDescriptorDataEXT(val::__U_VkDescriptorDataEXT) + ref = Ref{VkDescriptorDataEXT}() + ptr = Base.unsafe_convert(Ptr{VkDescriptorDataEXT}, ref) + if val isa Ptr{VkSampler} + ptr.pSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pCombinedImageSampler = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pInputAttachmentImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pSampledImage = val + elseif val isa Ptr{VkDescriptorImageInfo} + ptr.pStorageImage = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageTexelBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pUniformBuffer = val + elseif val isa Ptr{VkDescriptorAddressInfoEXT} + ptr.pStorageBuffer = val + elseif val isa VkDeviceAddress + ptr.accelerationStructure = val + end + ref[] end -struct VkDeviceMemoryOverallocationCreateInfoAMD +struct VkDescriptorGetInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - overallocationBehavior::VkMemoryOverallocationBehaviorAMD + type::VkDescriptorType + data::VkDescriptorDataEXT end -struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +struct VkBufferCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxVertexAttribDivisor::UInt32 -end - -struct VkVertexInputBindingDivisorDescriptionEXT - binding::UInt32 - divisor::UInt32 + buffer::VkBuffer end -struct VkPipelineVertexInputDivisorStateCreateInfoEXT +struct VkImageCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexBindingDivisorCount::UInt32 - pVertexBindingDivisors::Ptr{VkVertexInputBindingDivisorDescriptionEXT} + image::VkImage end -struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +struct VkImageViewCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - vertexAttributeInstanceRateDivisor::VkBool32 - vertexAttributeInstanceRateZeroDivisor::VkBool32 + imageView::VkImageView end -const VkPipelineCreationFeedbackFlagBitsEXT = VkPipelineCreationFeedbackFlagBits - -const VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags - -const VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo - -const VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback - -struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV +struct VkSamplerCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - computeDerivativeGroupQuads::VkBool32 - computeDerivativeGroupLinear::VkBool32 + sampler::VkSampler end -struct VkPhysicalDeviceMeshShaderFeaturesNV +struct VkOpaqueCaptureDescriptorDataCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - taskShader::VkBool32 - meshShader::VkBool32 + opaqueCaptureDescriptorData::Ptr{Cvoid} end -struct VkPhysicalDeviceMeshShaderPropertiesNV +struct VkAccelerationStructureCaptureDescriptorDataInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxDrawMeshTasksCount::UInt32 - maxTaskWorkGroupInvocations::UInt32 - maxTaskWorkGroupSize::NTuple{3, UInt32} - maxTaskTotalMemorySize::UInt32 - maxTaskOutputCount::UInt32 - maxMeshWorkGroupInvocations::UInt32 - maxMeshWorkGroupSize::NTuple{3, UInt32} - maxMeshTotalMemorySize::UInt32 - maxMeshOutputVertices::UInt32 - maxMeshOutputPrimitives::UInt32 - maxMeshMultiviewViewCount::UInt32 - meshOutputPerVertexGranularity::UInt32 - meshOutputPerPrimitiveGranularity::UInt32 + accelerationStructure::VkAccelerationStructureKHR + accelerationStructureNV::VkAccelerationStructureNV end -struct VkDrawMeshTasksIndirectCommandNV - taskCount::UInt32 - firstTask::UInt32 -end +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutSizeEXT ) ( VkDevice device , VkDescriptorSetLayout layout , VkDeviceSize * pLayoutSizeInBytes ) +const PFN_vkGetDescriptorSetLayoutSizeEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksNV ) ( VkCommandBuffer commandBuffer , uint32_t taskCount , uint32_t firstTask ) -const PFN_vkCmdDrawMeshTasksNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutBindingOffsetEXT ) ( VkDevice device , VkDescriptorSetLayout layout , uint32_t binding , VkDeviceSize * pOffset ) +const PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorEXT ) ( VkDevice device , const VkDescriptorGetInfoEXT * pDescriptorInfo , size_t dataSize , void * pDescriptor ) +const PFN_vkGetDescriptorEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) -const PFN_vkCmdDrawMeshTasksIndirectCountNV = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBuffersEXT ) ( VkCommandBuffer commandBuffer , uint32_t bufferCount , const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) +const PFN_vkCmdBindDescriptorBuffersEXT = Ptr{Cvoid} -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask) - ccall((:vkCmdDrawMeshTasksNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDescriptorBufferOffsetsEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t setCount , const uint32_t * pBufferIndices , const VkDeviceSize * pOffsets ) +const PFN_vkCmdSetDescriptorBufferOffsetsEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t set ) +const PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkBufferCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkImageViewCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkSamplerCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) ( VkDevice device , const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo , void * pData ) +const PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Ptr{Cvoid} + +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes) + ccall((:vkGetDescriptorSetLayoutSizeEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32), commandBuffer, taskCount, firstTask) +function vkGetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, Ptr{VkDeviceSize}), device, layout, pLayoutSizeInBytes) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset) + ccall((:vkGetDescriptorSetLayoutBindingOffsetEXT, libvulkan), Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -function vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) +function vkGetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSetLayout, UInt32, Ptr{VkDeviceSize}), device, layout, binding, pOffset) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - ccall((:vkCmdDrawMeshTasksIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor) + ccall((:vkGetDescriptorEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -function vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) +function vkGetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorGetInfoEXT}, Csize_t, Ptr{Cvoid}), device, pDescriptorInfo, dataSize, pDescriptor) end -struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentShaderBarycentric::VkBool32 +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos) + ccall((:vkCmdBindDescriptorBuffersEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -struct VkPhysicalDeviceShaderImageFootprintFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - imageFootprint::VkBool32 +function vkCmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDescriptorBufferBindingInfoEXT}), commandBuffer, bufferCount, pBindingInfos) end -struct VkPipelineViewportExclusiveScissorStateCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissorCount::UInt32 - pExclusiveScissors::Ptr{VkRect2D} +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + ccall((:vkCmdSetDescriptorBufferOffsetsEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -struct VkPhysicalDeviceExclusiveScissorFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - exclusiveScissor::VkBool32 +function vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32, UInt32, Ptr{UInt32}, Ptr{VkDeviceSize}), commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetExclusiveScissorNV ) ( VkCommandBuffer commandBuffer , uint32_t firstExclusiveScissor , uint32_t exclusiveScissorCount , const VkRect2D * pExclusiveScissors ) -const PFN_vkCmdSetExclusiveScissorNV = Ptr{Cvoid} +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set) + ccall((:vkCmdBindDescriptorBufferEmbeddedSamplersEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) +end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) - ccall((:vkCmdSetExclusiveScissorNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, UInt32), commandBuffer, pipelineBindPoint, layout, set) end -function vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkRect2D}), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetBufferOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkQueueFamilyCheckpointPropertiesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - checkpointExecutionStageMask::VkPipelineStageFlags +function vkGetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkBufferCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkCheckpointDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - stage::VkPipelineStageFlagBits - pCheckpointMarker::Ptr{Cvoid} +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCheckpointNV ) ( VkCommandBuffer commandBuffer , const void * pCheckpointMarker ) -const PFN_vkCmdSetCheckpointNV = Ptr{Cvoid} +function vkGetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -# typedef void ( VKAPI_PTR * PFN_vkGetQueueCheckpointDataNV ) ( VkQueue queue , uint32_t * pCheckpointDataCount , VkCheckpointDataNV * pCheckpointData ) -const PFN_vkGetQueueCheckpointDataNV = Ptr{Cvoid} +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetImageViewOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker) - ccall((:vkCmdSetCheckpointNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkImageViewCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{Cvoid}), commandBuffer, pCheckpointMarker) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetSamplerOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData) - ccall((:vkGetQueueCheckpointDataNV, libvulkan), Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function vkGetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkSamplerCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -function vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, fptr) - ccall(fptr, Cvoid, (VkQueue, Ptr{UInt32}, Ptr{VkCheckpointDataNV}), queue, pCheckpointDataCount, pCheckpointData) +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData) + ccall((:vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, libvulkan), VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) end -struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +function vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkAccelerationStructureCaptureDescriptorDataInfoEXT}, Ptr{Cvoid}), device, pInfo, pData) +end + +@cenum VkGraphicsPipelineLibraryFlagBitsEXT::UInt32 begin + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8 + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647 +end + +const VkGraphicsPipelineLibraryFlagsEXT = VkFlags + +struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderIntegerFunctions2::VkBool32 + graphicsPipelineLibrary::VkBool32 end -const VkPerformanceConfigurationINTEL_T = Cvoid +struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + graphicsPipelineLibraryFastLinking::VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration::VkBool32 +end -const VkPerformanceConfigurationINTEL = Ptr{VkPerformanceConfigurationINTEL_T} +struct VkGraphicsPipelineLibraryCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkGraphicsPipelineLibraryFlagsEXT +end -@cenum VkPerformanceConfigurationTypeINTEL::UInt32 begin - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderEarlyAndLateFragmentTests::VkBool32 end -@cenum VkQueryPoolSamplingModeINTEL::UInt32 begin - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647 +@cenum VkFragmentShadingRateTypeNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceOverrideTypeINTEL::UInt32 begin - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647 +@cenum VkFragmentShadingRateNV::UInt32 begin + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 end -@cenum VkPerformanceParameterTypeINTEL::UInt32 begin - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentShadingRateEnums::VkBool32 + supersampleFragmentShadingRates::VkBool32 + noInvocationFragmentShadingRates::VkBool32 end -@cenum VkPerformanceValueTypeINTEL::UInt32 begin - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647 +struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits end -struct VkPerformanceValueDataINTEL - data::NTuple{8, UInt8} +struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + shadingRateType::VkFragmentShadingRateTypeNV + shadingRate::VkFragmentShadingRateNV + combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} end -function Base.getproperty(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol) - f === :value32 && return Ptr{UInt32}(x + 0) - f === :value64 && return Ptr{UInt64}(x + 0) - f === :valueFloat && return Ptr{Cfloat}(x + 0) - f === :valueBool && return Ptr{VkBool32}(x + 0) - f === :valueString && return Ptr{Ptr{Cchar}}(x + 0) - return getfield(x, f) +# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) +const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} + +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) + ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function Base.getproperty(x::VkPerformanceValueDataINTEL, f::Symbol) - r = Ref{VkPerformanceValueDataINTEL}(x) - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) end -function Base.setproperty!(x::Ptr{VkPerformanceValueDataINTEL}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 end -const __U_VkPerformanceValueDataINTEL = Union{UInt32, UInt64, Cfloat, VkBool32, Ptr{Cchar}} +const VkAccelerationStructureMotionInfoFlagsNV = VkFlags -function VkPerformanceValueDataINTEL(val::__U_VkPerformanceValueDataINTEL) - ref = Ref{VkPerformanceValueDataINTEL}() - ptr = Base.unsafe_convert(Ptr{VkPerformanceValueDataINTEL}, ref) - if val isa UInt32 - ptr.value32 = val - elseif val isa UInt64 - ptr.value64 = val - elseif val isa Cfloat - ptr.valueFloat = val - elseif val isa VkBool32 - ptr.valueBool = val - elseif val isa Ptr{Cchar} - ptr.valueString = val - end - ref[] -end +const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags -struct VkPerformanceValueINTEL - type::VkPerformanceValueTypeINTEL - data::VkPerformanceValueDataINTEL +struct VkDeviceOrHostAddressConstKHR + data::NTuple{8, UInt8} end -struct VkInitializePerformanceApiInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - pUserData::Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -struct VkQueryPoolPerformanceQueryCreateInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - performanceCountersSampling::VkQueryPoolSamplingModeINTEL +function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressConstKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -const VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - -struct VkPerformanceMarkerInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - marker::UInt64 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -struct VkPerformanceStreamMarkerInfoINTEL - sType::VkStructureType - pNext::Ptr{Cvoid} - marker::UInt32 +const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} + +function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) + ref = Ref{VkDeviceOrHostAddressConstKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] end -struct VkPerformanceOverrideInfoINTEL +struct VkAccelerationStructureGeometryMotionTrianglesDataNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceOverrideTypeINTEL - enable::VkBool32 - parameter::UInt64 + vertexData::VkDeviceOrHostAddressConstKHR end -struct VkPerformanceConfigurationAcquireInfoINTEL +struct VkAccelerationStructureMotionInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - type::VkPerformanceConfigurationTypeINTEL + maxInstances::UInt32 + flags::VkAccelerationStructureMotionInfoFlagsNV end -# typedef VkResult ( VKAPI_PTR * PFN_vkInitializePerformanceApiINTEL ) ( VkDevice device , const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) -const PFN_vkInitializePerformanceApiINTEL = Ptr{Cvoid} +struct VkAccelerationStructureMatrixMotionInstanceNV + data::NTuple{112, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkUninitializePerformanceApiINTEL ) ( VkDevice device ) -const PFN_vkUninitializePerformanceApiINTEL = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) + f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) + return getfield(x, f) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceMarkerINTEL = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceStreamMarkerINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) -const PFN_vkCmdSetPerformanceStreamMarkerINTEL = Ptr{Cvoid} +function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCmdSetPerformanceOverrideINTEL ) ( VkCommandBuffer commandBuffer , const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) -const PFN_vkCmdSetPerformanceOverrideINTEL = Ptr{Cvoid} +function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] +end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquirePerformanceConfigurationINTEL ) ( VkDevice device , const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo , VkPerformanceConfigurationINTEL * pConfiguration ) -const PFN_vkAcquirePerformanceConfigurationINTEL = Ptr{Cvoid} +struct VkSRTDataNV + sx::Cfloat + a::Cfloat + b::Cfloat + pvx::Cfloat + sy::Cfloat + c::Cfloat + pvy::Cfloat + sz::Cfloat + pvz::Cfloat + qx::Cfloat + qy::Cfloat + qz::Cfloat + qw::Cfloat + tx::Cfloat + ty::Cfloat + tz::Cfloat +end -# typedef VkResult ( VKAPI_PTR * PFN_vkReleasePerformanceConfigurationINTEL ) ( VkDevice device , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkReleasePerformanceConfigurationINTEL = Ptr{Cvoid} +struct VkAccelerationStructureSRTMotionInstanceNV + data::NTuple{144, UInt8} +end -# typedef VkResult ( VKAPI_PTR * PFN_vkQueueSetPerformanceConfigurationINTEL ) ( VkQueue queue , VkPerformanceConfigurationINTEL configuration ) -const PFN_vkQueueSetPerformanceConfigurationINTEL = Ptr{Cvoid} +function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) + f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) + f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) + f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) + f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) + f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) + f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) + f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) + return getfield(x, f) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPerformanceParameterINTEL ) ( VkDevice device , VkPerformanceParameterTypeINTEL parameter , VkPerformanceValueINTEL * pValue ) -const PFN_vkGetPerformanceParameterINTEL = Ptr{Cvoid} +function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) + r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) + fptr = getproperty(ptr, f) + begin + if fptr isa Ptr + return GC.@preserve(r, unsafe_load(fptr)) + else + (baseptr, offset, width) = fptr + ty = eltype(baseptr) + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = GC.@preserve(r, unsafe_load(baseptr32)) + if offset + width > 32 + u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 + end + u64 = u64 >> offset & (1 << width - 1) + return u64 % ty + end + end +end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo) - ccall((:vkInitializePerformanceApiINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) + fptr = getproperty(x, f) + if fptr isa Ptr + unsafe_store!(getproperty(x, f), v) + else + (baseptr, offset, width) = fptr + baseptr32 = convert(Ptr{UInt32}, baseptr) + u64 = unsafe_load(baseptr32) + straddle = offset + width > 32 + if straddle + u64 |= unsafe_load(baseptr32 + 4) << 32 + end + mask = 1 << width - 1 + u64 &= ~(mask << offset) + u64 |= (unsigned(v) & mask) << offset + unsafe_store!(baseptr32, u64 & typemax(UInt32)) + if straddle + unsafe_store!(baseptr32 + 4, u64 >> 32) + end + end end -function vkInitializePerformanceApiINTEL(device, pInitializeInfo, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkInitializePerformanceApiInfoINTEL}), device, pInitializeInfo) +function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) + ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) + ptr.transformT0 = transformT0 + ptr.transformT1 = transformT1 + ptr.instanceCustomIndex = instanceCustomIndex + ptr.mask = mask + ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + ptr.flags = flags + ptr.accelerationStructureReference = accelerationStructureReference + ref[] end -function vkUninitializePerformanceApiINTEL(device) - ccall((:vkUninitializePerformanceApiINTEL, libvulkan), Cvoid, (VkDevice,), device) +struct VkAccelerationStructureMotionInstanceDataNV + data::NTuple{144, UInt8} end -function vkUninitializePerformanceApiINTEL(device, fptr) - ccall(fptr, Cvoid, (VkDevice,), device) +function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) + f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) + f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) + f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) + return getfield(x, f) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) + r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -function vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo) - ccall((:vkCmdSetPerformanceStreamMarkerINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} + +function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) + ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() + ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) + if val isa VkAccelerationStructureInstanceKHR + ptr.staticInstance = val + elseif val isa VkAccelerationStructureMatrixMotionInstanceNV + ptr.matrixMotionInstance = val + elseif val isa VkAccelerationStructureSRTMotionInstanceNV + ptr.srtMotionInstance = val + end + ref[] end -function vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceStreamMarkerInfoINTEL}), commandBuffer, pMarkerInfo) +struct VkAccelerationStructureMotionInstanceNV + type::VkAccelerationStructureMotionInstanceTypeNV + flags::VkAccelerationStructureMotionInstanceFlagsNV + data::VkAccelerationStructureMotionInstanceDataNV end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo) - ccall((:vkCmdSetPerformanceOverrideINTEL, libvulkan), VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingMotionBlur::VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 end -function vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, fptr) - ccall(fptr, VkResult, (VkCommandBuffer, Ptr{VkPerformanceOverrideInfoINTEL}), commandBuffer, pOverrideInfo) +struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + ycbcr2plane444Formats::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration) - ccall((:vkAcquirePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + fragmentDensityMapDeferred::VkBool32 end -function vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPerformanceConfigurationAcquireInfoINTEL}, Ptr{VkPerformanceConfigurationINTEL}), device, pAcquireInfo, pConfiguration) +struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subsampledLoads::VkBool32 + subsampledCoarseReconstructionEarlyAccess::VkBool32 + maxSubsampledArrayLayers::UInt32 + maxDescriptorSetSubsampledSamplers::UInt32 end -function vkReleasePerformanceConfigurationINTEL(device, configuration) - ccall((:vkReleasePerformanceConfigurationINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) +struct VkCopyCommandTransformInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + transform::VkSurfaceTransformFlagBitsKHR end -function vkReleasePerformanceConfigurationINTEL(device, configuration, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceConfigurationINTEL), device, configuration) -end +const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration) - ccall((:vkQueueSetPerformanceConfigurationINTEL, libvulkan), VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +@cenum VkImageCompressionFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 4 + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkQueueSetPerformanceConfigurationINTEL(queue, configuration, fptr) - ccall(fptr, VkResult, (VkQueue, VkPerformanceConfigurationINTEL), queue, configuration) +const VkImageCompressionFlagsEXT = VkFlags + +@cenum VkImageCompressionFixedRateFlagBitsEXT::UInt32 begin + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0 + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608 + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue) - ccall((:vkGetPerformanceParameterINTEL, libvulkan), VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +const VkImageCompressionFixedRateFlagsEXT = VkFlags + +struct VkPhysicalDeviceImageCompressionControlFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + imageCompressionControl::VkBool32 end -function vkGetPerformanceParameterINTEL(device, parameter, pValue, fptr) - ccall(fptr, VkResult, (VkDevice, VkPerformanceParameterTypeINTEL, Ptr{VkPerformanceValueINTEL}), device, parameter, pValue) +struct VkImageCompressionControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkImageCompressionFlagsEXT + compressionControlPlaneCount::UInt32 + pFixedRateFlags::Ptr{VkImageCompressionFixedRateFlagsEXT} end -struct VkPhysicalDevicePCIBusInfoPropertiesEXT +struct VkSubresourceLayout2EXT sType::VkStructureType pNext::Ptr{Cvoid} - pciDomain::UInt32 - pciBus::UInt32 - pciDevice::UInt32 - pciFunction::UInt32 + subresourceLayout::VkSubresourceLayout end -struct VkDisplayNativeHdrSurfaceCapabilitiesAMD +struct VkImageSubresource2EXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingSupport::VkBool32 + imageSubresource::VkImageSubresource end -struct VkSwapchainDisplayNativeHdrCreateInfoAMD +struct VkImageCompressionPropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - localDimmingEnable::VkBool32 + imageCompressionFlags::VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags::VkImageCompressionFixedRateFlagsEXT end -# typedef void ( VKAPI_PTR * PFN_vkSetLocalDimmingAMD ) ( VkDevice device , VkSwapchainKHR swapChain , VkBool32 localDimmingEnable ) -const PFN_vkSetLocalDimmingAMD = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetImageSubresourceLayout2EXT ) ( VkDevice device , VkImage image , const VkImageSubresource2EXT * pSubresource , VkSubresourceLayout2EXT * pLayout ) +const PFN_vkGetImageSubresourceLayout2EXT = Ptr{Cvoid} -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable) - ccall((:vkSetLocalDimmingAMD, libvulkan), Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout) + ccall((:vkGetImageSubresourceLayout2EXT, libvulkan), Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -function vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, fptr) - ccall(fptr, Cvoid, (VkDevice, VkSwapchainKHR, VkBool32), device, swapChain, localDimmingEnable) +function vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout, fptr) + ccall(fptr, Cvoid, (VkDevice, VkImage, Ptr{VkImageSubresource2EXT}, Ptr{VkSubresourceLayout2EXT}), device, image, pSubresource, pLayout) end -struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMap::VkBool32 - fragmentDensityMapDynamic::VkBool32 - fragmentDensityMapNonSubsampledImages::VkBool32 + attachmentFeedbackLoopLayout::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +struct VkPhysicalDevice4444FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - minFragmentDensityTexelSize::VkExtent2D - maxFragmentDensityTexelSize::VkExtent2D - fragmentDensityInvocations::VkBool32 + formatA4R4G4B4::VkBool32 + formatA4B4G4R4::VkBool32 end -struct VkRenderPassFragmentDensityMapCreateInfoEXT +@cenum VkDeviceFaultAddressTypeEXT::UInt32 begin + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647 +end + +@cenum VkDeviceFaultVendorBinaryHeaderVersionEXT::UInt32 begin + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1 + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647 +end + +struct VkPhysicalDeviceFaultFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapAttachment::VkAttachmentReference + deviceFault::VkBool32 + deviceFaultVendorBinary::VkBool32 end -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures +struct VkDeviceFaultCountsEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + addressInfoCount::UInt32 + vendorInfoCount::UInt32 + vendorBinarySize::VkDeviceSize +end -const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures +struct VkDeviceFaultAddressInfoEXT + addressType::VkDeviceFaultAddressTypeEXT + reportedAddress::VkDeviceAddress + addressPrecision::VkDeviceSize +end -const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties +struct VkDeviceFaultVendorInfoEXT + description::NTuple{256, Cchar} + vendorFaultCode::UInt64 + vendorFaultData::UInt64 +end -const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +struct VkDeviceFaultInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + description::NTuple{256, Cchar} + pAddressInfos::Ptr{VkDeviceFaultAddressInfoEXT} + pVendorInfos::Ptr{VkDeviceFaultVendorInfoEXT} + pVendorBinaryData::Ptr{Cvoid} +end -@cenum VkShaderCorePropertiesFlagBitsAMD::UInt32 begin - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647 +struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT + headerSize::UInt32 + headerVersion::VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID::UInt32 + deviceID::UInt32 + driverVersion::UInt32 + pipelineCacheUUID::NTuple{16, UInt8} + applicationNameOffset::UInt32 + applicationVersion::UInt32 + engineNameOffset::UInt32 end -const VkShaderCorePropertiesFlagsAMD = VkFlags +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceFaultInfoEXT ) ( VkDevice device , VkDeviceFaultCountsEXT * pFaultCounts , VkDeviceFaultInfoEXT * pFaultInfo ) +const PFN_vkGetDeviceFaultInfoEXT = Ptr{Cvoid} -struct VkPhysicalDeviceShaderCoreProperties2AMD - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderCoreFeatures::VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount::UInt32 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo) + ccall((:vkGetDeviceFaultInfoEXT, libvulkan), VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceCoherentMemoryFeaturesAMD - sType::VkStructureType - pNext::Ptr{Cvoid} - deviceCoherentMemory::VkBool32 +function vkGetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkDeviceFaultCountsEXT}, Ptr{VkDeviceFaultInfoEXT}), device, pFaultCounts, pFaultInfo) end -struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT +struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shaderImageInt64Atomics::VkBool32 - sparseImageInt64Atomics::VkBool32 + rasterizationOrderColorAttachmentAccess::VkBool32 + rasterizationOrderDepthAttachmentAccess::VkBool32 + rasterizationOrderStencilAttachmentAccess::VkBool32 end -struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + +struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - heapBudget::NTuple{16, VkDeviceSize} - heapUsage::NTuple{16, VkDeviceSize} + formatRgba10x6WithoutYCbCrSampler::VkBool32 end -struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - memoryPriority::VkBool32 + mutableDescriptorType::VkBool32 end -struct VkMemoryPriorityAllocateInfoEXT +const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT + +struct VkMutableDescriptorTypeListEXT + descriptorTypeCount::UInt32 + pDescriptorTypes::Ptr{VkDescriptorType} +end + +const VkMutableDescriptorTypeListVALVE = VkMutableDescriptorTypeListEXT + +struct VkMutableDescriptorTypeCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - priority::Cfloat + mutableDescriptorTypeListCount::UInt32 + pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListEXT} end -struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +const VkMutableDescriptorTypeCreateInfoVALVE = VkMutableDescriptorTypeCreateInfoEXT + +struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - dedicatedAllocationImageAliasing::VkBool32 + vertexInputDynamicState::VkBool32 end -struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +struct VkVertexInputBindingDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - bufferDeviceAddress::VkBool32 - bufferDeviceAddressCaptureReplay::VkBool32 - bufferDeviceAddressMultiDevice::VkBool32 + binding::UInt32 + stride::UInt32 + inputRate::VkVertexInputRate + divisor::UInt32 end -const VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - -const VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - -struct VkBufferDeviceAddressCreateInfoEXT +struct VkVertexInputAttributeDescription2EXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceAddress::VkDeviceAddress + location::UInt32 + binding::UInt32 + format::VkFormat + offset::UInt32 end -# typedef VkDeviceAddress ( VKAPI_PTR * PFN_vkGetBufferDeviceAddressEXT ) ( VkDevice device , const VkBufferDeviceAddressInfo * pInfo ) -const PFN_vkGetBufferDeviceAddressEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) +const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} -function vkGetBufferDeviceAddressEXT(device, pInfo) - ccall((:vkGetBufferDeviceAddressEXT, libvulkan), VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -function vkGetBufferDeviceAddressEXT(device, pInfo, fptr) - ccall(fptr, VkDeviceAddress, (VkDevice, Ptr{VkBufferDeviceAddressInfo}), device, pInfo) +function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) end -const VkToolPurposeFlagBitsEXT = VkToolPurposeFlagBits - -const VkToolPurposeFlagsEXT = VkToolPurposeFlags - -const VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties - -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceToolPropertiesEXT ) ( VkPhysicalDevice physicalDevice , uint32_t * pToolCount , VkPhysicalDeviceToolProperties * pToolProperties ) -const PFN_vkGetPhysicalDeviceToolPropertiesEXT = Ptr{Cvoid} +struct VkPhysicalDeviceDrmPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + hasPrimary::VkBool32 + hasRender::VkBool32 + primaryMajor::Int64 + primaryMinor::Int64 + renderMajor::Int64 + renderMinor::Int64 +end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties) - ccall((:vkGetPhysicalDeviceToolPropertiesEXT, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +@cenum VkDeviceAddressBindingTypeEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkPhysicalDeviceToolProperties}), physicalDevice, pToolCount, pToolProperties) +@cenum VkDeviceAddressBindingFlagBitsEXT::UInt32 begin + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1 + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -const VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo +const VkDeviceAddressBindingFlagsEXT = VkFlags -@cenum VkValidationFeatureEnableEXT::UInt32 begin - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647 +struct VkPhysicalDeviceAddressBindingReportFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + reportAddressBinding::VkBool32 end -@cenum VkValidationFeatureDisableEXT::UInt32 begin - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647 +struct VkDeviceAddressBindingCallbackDataEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + flags::VkDeviceAddressBindingFlagsEXT + baseAddress::VkDeviceAddress + size::VkDeviceSize + bindingType::VkDeviceAddressBindingTypeEXT end -struct VkValidationFeaturesEXT +struct VkPhysicalDeviceDepthClipControlFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - enabledValidationFeatureCount::UInt32 - pEnabledValidationFeatures::Ptr{VkValidationFeatureEnableEXT} - disabledValidationFeatureCount::UInt32 - pDisabledValidationFeatures::Ptr{VkValidationFeatureDisableEXT} + depthClipControl::VkBool32 end -@cenum VkComponentTypeNV::UInt32 begin - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647 +struct VkPipelineViewportDepthClipControlCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + negativeOneToOne::VkBool32 end -@cenum VkScopeNV::UInt32 begin - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VK_SCOPE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitiveTopologyListRestart::VkBool32 + primitiveTopologyPatchListRestart::VkBool32 end -struct VkCooperativeMatrixPropertiesNV +struct VkSubpassShadingPipelineCreateInfoHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - MSize::UInt32 - NSize::UInt32 - KSize::UInt32 - AType::VkComponentTypeNV - BType::VkComponentTypeNV - CType::VkComponentTypeNV - DType::VkComponentTypeNV - scope::VkScopeNV + renderPass::VkRenderPass + subpass::UInt32 end -struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrix::VkBool32 - cooperativeMatrixRobustBufferAccess::VkBool32 + subpassShading::VkBool32 end -struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - cooperativeMatrixSupportedStages::VkShaderStageFlags + maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkCooperativeMatrixPropertiesNV * pProperties ) -const PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) +const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties) - ccall((:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) +const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} + +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) + ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -function vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkCooperativeMatrixPropertiesNV}), physicalDevice, pPropertyCount, pProperties) +function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) + ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) end -@cenum VkCoverageReductionModeNV::UInt32 begin - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647 +function vkCmdSubpassShadingHUAWEI(commandBuffer) + ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) end -const VkPipelineCoverageReductionStateCreateFlagsNV = VkFlags +function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +end -struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkBool32 + invocationMask::VkBool32 end -struct VkPipelineCoverageReductionStateCreateInfoNV +# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) +const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) + ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +end + +const VkRemoteAddressNV = Ptr{Cvoid} + +struct VkMemoryGetRemoteAddressInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode::VkCoverageReductionModeNV + memory::VkDeviceMemory + handleType::VkExternalMemoryHandleTypeFlagBits end -struct VkFramebufferMixedSamplesCombinationNV +struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - coverageReductionMode::VkCoverageReductionModeNV - rasterizationSamples::VkSampleCountFlagBits - depthStencilSamples::VkSampleCountFlags - colorSamples::VkSampleCountFlags + externalMemoryRDMA::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) ( VkPhysicalDevice physicalDevice , uint32_t * pCombinationCount , VkFramebufferMixedSamplesCombinationNV * pCombinations ) -const PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) +const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations) - ccall((:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) + ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -function vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{UInt32}, Ptr{VkFramebufferMixedSamplesCombinationNV}), physicalDevice, pCombinationCount, pCombinations) +function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) end -struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +const VkPipelineInfoEXT = VkPipelineInfoKHR + +struct VkPipelinePropertiesIdentifierEXT sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShaderSampleInterlock::VkBool32 - fragmentShaderPixelInterlock::VkBool32 - fragmentShaderShadingRateInterlock::VkBool32 + pipelineIdentifier::NTuple{16, UInt8} end -struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +struct VkPhysicalDevicePipelinePropertiesFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - ycbcrImageArrays::VkBool32 + pipelinePropertiesIdentifier::VkBool32 end -@cenum VkProvokingVertexModeEXT::UInt32 begin - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647 +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPipelinePropertiesEXT ) ( VkDevice device , const VkPipelineInfoEXT * pPipelineInfo , VkBaseOutStructure * pPipelineProperties ) +const PFN_vkGetPipelinePropertiesEXT = Ptr{Cvoid} + +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties) + ccall((:vkGetPipelinePropertiesEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) end -struct VkPhysicalDeviceProvokingVertexFeaturesEXT +function vkGetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkPipelineInfoEXT}, Ptr{VkBaseOutStructure}), device, pPipelineInfo, pPipelineProperties) +end + +struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexLast::VkBool32 - transformFeedbackPreservesProvokingVertex::VkBool32 + multisampledRenderToSingleSampled::VkBool32 end -struct VkPhysicalDeviceProvokingVertexPropertiesEXT +struct VkSubpassResolvePerformanceQueryEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexModePerPipeline::VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex::VkBool32 + optimal::VkBool32 end -struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +struct VkMultisampledRenderToSingleSampledInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - provokingVertexMode::VkProvokingVertexModeEXT + multisampledRenderToSingleSampledEnable::VkBool32 + rasterizationSamples::VkSampleCountFlagBits end -const VkHeadlessSurfaceCreateFlagsEXT = VkFlags - -struct VkHeadlessSurfaceCreateInfoEXT +struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkHeadlessSurfaceCreateFlagsEXT + extendedDynamicState2::VkBool32 + extendedDynamicState2LogicOp::VkBool32 + extendedDynamicState2PatchControlPoints::VkBool32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateHeadlessSurfaceEXT ) ( VkInstance instance , const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSurfaceKHR * pSurface ) -const PFN_vkCreateHeadlessSurfaceEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) +const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface) - ccall((:vkCreateHeadlessSurfaceEXT, libvulkan), VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) +const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} -function vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, fptr) - ccall(fptr, VkResult, (VkInstance, Ptr{VkHeadlessSurfaceCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkSurfaceKHR}), instance, pCreateInfo, pAllocator, pSurface) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) +const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} -@cenum VkLineRasterizationModeEXT::UInt32 begin - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) +const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} -struct VkPhysicalDeviceLineRasterizationFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - rectangularLines::VkBool32 - bresenhamLines::VkBool32 - smoothLines::VkBool32 - stippledRectangularLines::VkBool32 - stippledBresenhamLines::VkBool32 - stippledSmoothLines::VkBool32 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) +const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} -struct VkPhysicalDeviceLineRasterizationPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineSubPixelPrecisionBits::UInt32 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) + ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -struct VkPipelineRasterizationLineStateCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - lineRasterizationMode::VkLineRasterizationModeEXT - stippledLineEnable::VkBool32 - lineStippleFactor::UInt32 - lineStipplePattern::UInt16 +function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEXT ) ( VkCommandBuffer commandBuffer , uint32_t lineStippleFactor , uint16_t lineStipplePattern ) -const PFN_vkCmdSetLineStippleEXT = Ptr{Cvoid} +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) + ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern) - ccall((:vkCmdSetLineStippleEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) end -function vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt16), commandBuffer, lineStippleFactor, lineStipplePattern) +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) + ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderBufferFloat32Atomics::VkBool32 - shaderBufferFloat32AtomicAdd::VkBool32 - shaderBufferFloat64Atomics::VkBool32 - shaderBufferFloat64AtomicAdd::VkBool32 - shaderSharedFloat32Atomics::VkBool32 - shaderSharedFloat32AtomicAdd::VkBool32 - shaderSharedFloat64Atomics::VkBool32 - shaderSharedFloat64AtomicAdd::VkBool32 - shaderImageFloat32Atomics::VkBool32 - shaderImageFloat32AtomicAdd::VkBool32 - sparseImageFloat32Atomics::VkBool32 - sparseImageFloat32AtomicAdd::VkBool32 +function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) end -const VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures +function vkCmdSetLogicOpEXT(commandBuffer, logicOp) + ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end -# typedef void ( VKAPI_PTR * PFN_vkResetQueryPoolEXT ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) -const PFN_vkResetQueryPoolEXT = Ptr{Cvoid} +function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount) - ccall((:vkResetQueryPoolEXT, libvulkan), Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) + ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -function vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, fptr) - ccall(fptr, Cvoid, (VkDevice, VkQueryPool, UInt32, UInt32), device, queryPool, firstQuery, queryCount) +function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) end -struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT +struct VkPhysicalDeviceColorWriteEnableFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - indexTypeUint8::VkBool32 + colorWriteEnable::VkBool32 end -struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +struct VkPipelineColorWriteCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState::VkBool32 + attachmentCount::UInt32 + pColorWriteEnables::Ptr{VkBool32} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetCullModeEXT ) ( VkCommandBuffer commandBuffer , VkCullModeFlags cullMode ) -const PFN_vkCmdSetCullModeEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFrontFaceEXT ) ( VkCommandBuffer commandBuffer , VkFrontFace frontFace ) -const PFN_vkCmdSetFrontFaceEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveTopologyEXT ) ( VkCommandBuffer commandBuffer , VkPrimitiveTopology primitiveTopology ) -const PFN_vkCmdSetPrimitiveTopologyEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t viewportCount , const VkViewport * pViewports ) -const PFN_vkCmdSetViewportWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetScissorWithCountEXT ) ( VkCommandBuffer commandBuffer , uint32_t scissorCount , const VkRect2D * pScissors ) -const PFN_vkCmdSetScissorWithCountEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdBindVertexBuffers2EXT ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets , const VkDeviceSize * pSizes , const VkDeviceSize * pStrides ) -const PFN_vkCmdBindVertexBuffers2EXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthTestEnable ) -const PFN_vkCmdSetDepthTestEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) +const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthWriteEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthWriteEnable ) -const PFN_vkCmdSetDepthWriteEnableEXT = Ptr{Cvoid} +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) + ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthCompareOpEXT ) ( VkCommandBuffer commandBuffer , VkCompareOp depthCompareOp ) -const PFN_vkCmdSetDepthCompareOpEXT = Ptr{Cvoid} +function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBoundsTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBoundsTestEnable ) -const PFN_vkCmdSetDepthBoundsTestEnableEXT = Ptr{Cvoid} +struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + primitivesGeneratedQuery::VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard::VkBool32 + primitivesGeneratedQueryWithNonZeroStreams::VkBool32 +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilTestEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stencilTestEnable ) -const PFN_vkCmdSetStencilTestEnableEXT = Ptr{Cvoid} +const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR -# typedef void ( VKAPI_PTR * PFN_vkCmdSetStencilOpEXT ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , VkStencilOp failOp , VkStencilOp passOp , VkStencilOp depthFailOp , VkCompareOp compareOp ) -const PFN_vkCmdSetStencilOpEXT = Ptr{Cvoid} +const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR -function vkCmdSetCullModeEXT(commandBuffer, cullMode) - ccall((:vkCmdSetCullModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkPhysicalDeviceImageViewMinLodFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::VkBool32 end -function vkCmdSetCullModeEXT(commandBuffer, cullMode, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCullModeFlags), commandBuffer, cullMode) +struct VkImageViewMinLodCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + minLod::Cfloat end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace) - ccall((:vkCmdSetFrontFaceEXT, libvulkan), Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceMultiDrawFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + multiDraw::VkBool32 end -function vkCmdSetFrontFaceEXT(commandBuffer, frontFace, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFrontFace), commandBuffer, frontFace) +struct VkPhysicalDeviceMultiDrawPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxMultiDrawCount::UInt32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology) - ccall((:vkCmdSetPrimitiveTopologyEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkMultiDrawInfoEXT + firstVertex::UInt32 + vertexCount::UInt32 end -function vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPrimitiveTopology), commandBuffer, primitiveTopology) +struct VkMultiDrawIndexedInfoEXT + firstIndex::UInt32 + indexCount::UInt32 + vertexOffset::Int32 end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports) - ccall((:vkCmdSetViewportWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) +const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) +const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} + +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkViewport}), commandBuffer, viewportCount, pViewports) +function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors) - ccall((:vkCmdSetScissorWithCountEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkRect2D}), commandBuffer, scissorCount, pScissors) +function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - ccall((:vkCmdBindVertexBuffers2EXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + image2DViewOf3D::VkBool32 + sampler2DViewOf3D::VkBool32 end -function vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBuffer}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}, Ptr{VkDeviceSize}), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) +const VkMicromapEXT_T = Cvoid + +const VkMicromapEXT = Ptr{VkMicromapEXT_T} + +@cenum VkMicromapTypeEXT::UInt32 begin + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable) - ccall((:vkCmdSetDepthTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkBuildMicromapModeEXT::UInt32 begin + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthTestEnable) +@cenum VkCopyMicromapModeEXT::UInt32 begin + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable) - ccall((:vkCmdSetDepthWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkOpacityMicromapFormatEXT::UInt32 begin + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthWriteEnable) +@cenum VkOpacityMicromapSpecialIndexEXT::Int32 begin + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp) - ccall((:vkCmdSetDepthCompareOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkCompareOp), commandBuffer, depthCompareOp) +@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable) - ccall((:vkCmdSetDepthBoundsTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +@cenum VkBuildMicromapFlagBitsEXT::UInt32 begin + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4 + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBoundsTestEnable) +const VkBuildMicromapFlagsEXT = VkFlags + +@cenum VkMicromapCreateFlagBitsEXT::UInt32 begin + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1 + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647 end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable) - ccall((:vkCmdSetStencilTestEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +const VkMicromapCreateFlagsEXT = VkFlags + +struct VkMicromapUsageEXT + count::UInt32 + subdivisionLevel::UInt32 + format::UInt32 end -function vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stencilTestEnable) +struct VkDeviceOrHostAddressKHR + data::NTuple{8, UInt8} end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) - ccall((:vkCmdSetStencilOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) + f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) + f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) + return getfield(x, f) end -function vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) + r = Ref{VkDeviceOrHostAddressKHR}(x) + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) + fptr = getproperty(ptr, f) + GC.@preserve r unsafe_load(fptr) end -struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - shaderBufferFloat16Atomics::VkBool32 - shaderBufferFloat16AtomicAdd::VkBool32 - shaderBufferFloat16AtomicMinMax::VkBool32 - shaderBufferFloat32AtomicMinMax::VkBool32 - shaderBufferFloat64AtomicMinMax::VkBool32 - shaderSharedFloat16Atomics::VkBool32 - shaderSharedFloat16AtomicAdd::VkBool32 - shaderSharedFloat16AtomicMinMax::VkBool32 - shaderSharedFloat32AtomicMinMax::VkBool32 - shaderSharedFloat64AtomicMinMax::VkBool32 - shaderImageFloat32AtomicMinMax::VkBool32 - sparseImageFloat32AtomicMinMax::VkBool32 +function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) + unsafe_store!(getproperty(x, f), v) end -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures +const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} -const VkIndirectCommandsLayoutNV_T = Cvoid +function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) + ref = Ref{VkDeviceOrHostAddressKHR}() + ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) + if val isa VkDeviceAddress + ptr.deviceAddress = val + elseif val isa Ptr{Cvoid} + ptr.hostAddress = val + end + ref[] +end -const VkIndirectCommandsLayoutNV = Ptr{VkIndirectCommandsLayoutNV_T} +struct VkMicromapBuildInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + type::VkMicromapTypeEXT + flags::VkBuildMicromapFlagsEXT + mode::VkBuildMicromapModeEXT + dstMicromap::VkMicromapEXT + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + data::VkDeviceOrHostAddressConstKHR + scratchData::VkDeviceOrHostAddressKHR + triangleArray::VkDeviceOrHostAddressConstKHR + triangleArrayStride::VkDeviceSize +end -@cenum VkIndirectCommandsTokenTypeNV::UInt32 begin - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647 +struct VkMicromapCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + createFlags::VkMicromapCreateFlagsEXT + buffer::VkBuffer + offset::VkDeviceSize + size::VkDeviceSize + type::VkMicromapTypeEXT + deviceAddress::VkDeviceAddress end -@cenum VkIndirectStateFlagBitsNV::UInt32 begin - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1 - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceOpacityMicromapFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + micromap::VkBool32 + micromapCaptureReplay::VkBool32 + micromapHostCommands::VkBool32 end -const VkIndirectStateFlagsNV = VkFlags +struct VkPhysicalDeviceOpacityMicromapPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxOpacity2StateSubdivisionLevel::UInt32 + maxOpacity4StateSubdivisionLevel::UInt32 +end -@cenum VkIndirectCommandsLayoutUsageFlagBitsNV::UInt32 begin - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 +struct VkMicromapVersionInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pVersionData::Ptr{UInt8} end -const VkIndirectCommandsLayoutUsageFlagsNV = VkFlags +struct VkCopyMicromapToMemoryInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + src::VkMicromapEXT + dst::VkDeviceOrHostAddressKHR + mode::VkCopyMicromapModeEXT +end -struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +struct VkCopyMemoryToMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxGraphicsShaderGroupCount::UInt32 - maxIndirectSequenceCount::UInt32 - maxIndirectCommandsTokenCount::UInt32 - maxIndirectCommandsStreamCount::UInt32 - maxIndirectCommandsTokenOffset::UInt32 - maxIndirectCommandsStreamStride::UInt32 - minSequencesCountBufferOffsetAlignment::UInt32 - minSequencesIndexBufferOffsetAlignment::UInt32 - minIndirectCommandsBufferOffsetAlignment::UInt32 + src::VkDeviceOrHostAddressConstKHR + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +struct VkCopyMicromapInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - deviceGeneratedCommands::VkBool32 + src::VkMicromapEXT + dst::VkMicromapEXT + mode::VkCopyMicromapModeEXT end -struct VkGraphicsShaderGroupCreateInfoNV +struct VkMicromapBuildSizesInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - stageCount::UInt32 - pStages::Ptr{VkPipelineShaderStageCreateInfo} - pVertexInputState::Ptr{VkPipelineVertexInputStateCreateInfo} - pTessellationState::Ptr{VkPipelineTessellationStateCreateInfo} + micromapSize::VkDeviceSize + buildScratchSize::VkDeviceSize + discardable::VkBool32 end -struct VkGraphicsPipelineShaderGroupsCreateInfoNV +struct VkAccelerationStructureTrianglesOpacityMicromapEXT sType::VkStructureType pNext::Ptr{Cvoid} - groupCount::UInt32 - pGroups::Ptr{VkGraphicsShaderGroupCreateInfoNV} - pipelineCount::UInt32 - pPipelines::Ptr{VkPipeline} + indexType::VkIndexType + indexBuffer::VkDeviceOrHostAddressConstKHR + indexStride::VkDeviceSize + baseTriangle::UInt32 + usageCountsCount::UInt32 + pUsageCounts::Ptr{VkMicromapUsageEXT} + ppUsageCounts::Ptr{Ptr{VkMicromapUsageEXT}} + micromap::VkMicromapEXT end -struct VkBindShaderGroupIndirectCommandNV - groupIndex::UInt32 +struct VkMicromapTriangleEXT + dataOffset::UInt32 + subdivisionLevel::UInt16 + format::UInt16 end -struct VkBindIndexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - indexType::VkIndexType +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateMicromapEXT ) ( VkDevice device , const VkMicromapCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkMicromapEXT * pMicromap ) +const PFN_vkCreateMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkDestroyMicromapEXT ) ( VkDevice device , VkMicromapEXT micromap , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdBuildMicromapsEXT ) ( VkCommandBuffer commandBuffer , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkCmdBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkBuildMicromapsEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , uint32_t infoCount , const VkMicromapBuildInfoEXT * pInfos ) +const PFN_vkBuildMicromapsEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCopyMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMicromapToMemoryEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkCopyMemoryToMicromapEXT ) ( VkDevice device , VkDeferredOperationKHR deferredOperation , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkWriteMicromapsPropertiesEXT ) ( VkDevice device , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , size_t dataSize , void * pData , size_t stride ) +const PFN_vkWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMicromapToMemoryEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMicromapToMemoryInfoEXT * pInfo ) +const PFN_vkCmdCopyMicromapToMemoryEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToMicromapEXT ) ( VkCommandBuffer commandBuffer , const VkCopyMemoryToMicromapInfoEXT * pInfo ) +const PFN_vkCmdCopyMemoryToMicromapEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdWriteMicromapsPropertiesEXT ) ( VkCommandBuffer commandBuffer , uint32_t micromapCount , const VkMicromapEXT * pMicromaps , VkQueryType queryType , VkQueryPool queryPool , uint32_t firstQuery ) +const PFN_vkCmdWriteMicromapsPropertiesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetDeviceMicromapCompatibilityEXT ) ( VkDevice device , const VkMicromapVersionInfoEXT * pVersionInfo , VkAccelerationStructureCompatibilityKHR * pCompatibility ) +const PFN_vkGetDeviceMicromapCompatibilityEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkGetMicromapBuildSizesEXT ) ( VkDevice device , VkAccelerationStructureBuildTypeKHR buildType , const VkMicromapBuildInfoEXT * pBuildInfo , VkMicromapBuildSizesInfoEXT * pSizeInfo ) +const PFN_vkGetMicromapBuildSizesEXT = Ptr{Cvoid} + +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap) + ccall((:vkCreateMicromapEXT, libvulkan), VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkBindVertexBufferIndirectCommandNV - bufferAddress::VkDeviceAddress - size::UInt32 - stride::UInt32 +function vkCreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkMicromapCreateInfoEXT}, Ptr{VkAllocationCallbacks}, Ptr{VkMicromapEXT}), device, pCreateInfo, pAllocator, pMicromap) end -struct VkSetStateFlagsIndirectCommandNV - data::UInt32 +function vkDestroyMicromapEXT(device, micromap, pAllocator) + ccall((:vkDestroyMicromapEXT, libvulkan), Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) end -struct VkIndirectCommandsStreamNV - buffer::VkBuffer - offset::VkDeviceSize +function vkDestroyMicromapEXT(device, micromap, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkMicromapEXT, Ptr{VkAllocationCallbacks}), device, micromap, pAllocator) +end + +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos) + ccall((:vkCmdBuildMicromapsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) +end + +function vkCmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapBuildInfoEXT}), commandBuffer, infoCount, pInfos) end -struct VkIndirectCommandsLayoutTokenNV - sType::VkStructureType - pNext::Ptr{Cvoid} - tokenType::VkIndirectCommandsTokenTypeNV - stream::UInt32 - offset::UInt32 - vertexBindingUnit::UInt32 - vertexDynamicStride::VkBool32 - pushconstantPipelineLayout::VkPipelineLayout - pushconstantShaderStageFlags::VkShaderStageFlags - pushconstantOffset::UInt32 - pushconstantSize::UInt32 - indirectStateFlags::VkIndirectStateFlagsNV - indexTypeCount::UInt32 - pIndexTypes::Ptr{VkIndexType} - pIndexTypeValues::Ptr{UInt32} +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos) + ccall((:vkBuildMicromapsEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkIndirectCommandsLayoutCreateInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - flags::VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint::VkPipelineBindPoint - tokenCount::UInt32 - pTokens::Ptr{VkIndirectCommandsLayoutTokenNV} - streamCount::UInt32 - pStreamStrides::Ptr{UInt32} +function vkBuildMicromapsEXT(device, deferredOperation, infoCount, pInfos, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, UInt32, Ptr{VkMicromapBuildInfoEXT}), device, deferredOperation, infoCount, pInfos) end -struct VkGeneratedCommandsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - streamCount::UInt32 - pStreams::Ptr{VkIndirectCommandsStreamNV} - sequencesCount::UInt32 - preprocessBuffer::VkBuffer - preprocessOffset::VkDeviceSize - preprocessSize::VkDeviceSize - sequencesCountBuffer::VkBuffer - sequencesCountOffset::VkDeviceSize - sequencesIndexBuffer::VkBuffer - sequencesIndexOffset::VkDeviceSize +function vkCopyMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -struct VkGeneratedCommandsMemoryRequirementsInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - pipelineBindPoint::VkPipelineBindPoint - pipeline::VkPipeline - indirectCommandsLayout::VkIndirectCommandsLayoutNV - maxSequencesCount::UInt32 +function vkCopyMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapInfoEXT}), device, deferredOperation, pInfo) end -# typedef void ( VKAPI_PTR * PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) ( VkDevice device , const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) -const PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMicromapToMemoryEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdPreprocessGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdPreprocessGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMicromapToMemoryEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMicromapToMemoryInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdExecuteGeneratedCommandsNV ) ( VkCommandBuffer commandBuffer , VkBool32 isPreprocessed , const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) -const PFN_vkCmdExecuteGeneratedCommandsNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo) + ccall((:vkCopyMemoryToMicromapEXT, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindPipelineShaderGroupNV ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline , uint32_t groupIndex ) -const PFN_vkCmdBindPipelineShaderGroupNV = Ptr{Cvoid} +function vkCopyMemoryToMicromapEXT(device, deferredOperation, pInfo, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, Ptr{VkCopyMemoryToMicromapInfoEXT}), device, deferredOperation, pInfo) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreateIndirectCommandsLayoutNV ) ( VkDevice device , const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) -const PFN_vkCreateIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + ccall((:vkWriteMicromapsPropertiesEXT, libvulkan), VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyIndirectCommandsLayoutNV ) ( VkDevice device , VkIndirectCommandsLayoutNV indirectCommandsLayout , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyIndirectCommandsLayoutNV = Ptr{Cvoid} +function vkWriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride, fptr) + ccall(fptr, VkResult, (VkDevice, UInt32, Ptr{VkMicromapEXT}, VkQueryType, Csize_t, Ptr{Cvoid}, Csize_t), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) +end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements) - ccall((:vkGetGeneratedCommandsMemoryRequirementsNV, libvulkan), Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkGeneratedCommandsMemoryRequirementsInfoNV}, Ptr{VkMemoryRequirements2}), device, pInfo, pMemoryRequirements) +function vkCmdCopyMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo) - ccall((:vkCmdPreprocessGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMicromapToMemoryEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, pGeneratedCommandsInfo) +function vkCmdCopyMicromapToMemoryEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMicromapToMemoryInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - ccall((:vkCmdExecuteGeneratedCommandsNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo) + ccall((:vkCmdCopyMemoryToMicromapEXT, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32, Ptr{VkGeneratedCommandsInfoNV}), commandBuffer, isPreprocessed, pGeneratedCommandsInfo) +function vkCmdCopyMemoryToMicromapEXT(commandBuffer, pInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkCopyMemoryToMicromapInfoEXT}), commandBuffer, pInfo) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - ccall((:vkCmdBindPipelineShaderGroupNV, libvulkan), Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + ccall((:vkCmdWriteMicromapsPropertiesEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkPipelineBindPoint, VkPipeline, UInt32), commandBuffer, pipelineBindPoint, pipeline, groupIndex) +function vkCmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMicromapEXT}, VkQueryType, VkQueryPool, UInt32), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - ccall((:vkCreateIndirectCommandsLayoutNV, libvulkan), VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility) + ccall((:vkGetDeviceMicromapCompatibilityEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkIndirectCommandsLayoutCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkIndirectCommandsLayoutNV}), device, pCreateInfo, pAllocator, pIndirectCommandsLayout) +function vkGetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkMicromapVersionInfoEXT}, Ptr{VkAccelerationStructureCompatibilityKHR}), device, pVersionInfo, pCompatibility) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator) - ccall((:vkDestroyIndirectCommandsLayoutNV, libvulkan), Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo) + ccall((:vkGetMicromapBuildSizesEXT, libvulkan), Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -function vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkIndirectCommandsLayoutNV, Ptr{VkAllocationCallbacks}), device, indirectCommandsLayout, pAllocator) +function vkGetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo, fptr) + ccall(fptr, Cvoid, (VkDevice, VkAccelerationStructureBuildTypeKHR, Ptr{VkMicromapBuildInfoEXT}, Ptr{VkMicromapBuildSizesInfoEXT}), device, buildType, pBuildInfo, pSizeInfo) end -struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - inheritedViewportScissor2D::VkBool32 + clustercullingShader::VkBool32 + multiviewClusterCullingShader::VkBool32 end -struct VkCommandBufferInheritanceViewportScissorInfoNV +struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI sType::VkStructureType pNext::Ptr{Cvoid} - viewportScissor2D::VkBool32 - viewportDepthCount::UInt32 - pViewportDepths::Ptr{VkViewport} + maxWorkGroupCount::NTuple{3, UInt32} + maxWorkGroupSize::NTuple{3, UInt32} + maxOutputClusterCount::UInt32 end -struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterHUAWEI ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawClusterHUAWEI = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawClusterIndirectHUAWEI ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) +const PFN_vkCmdDrawClusterIndirectHUAWEI = Ptr{Cvoid} + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawClusterHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset) + ccall((:vkCmdDrawClusterIndirectHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +function vkCmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize), commandBuffer, buffer, offset) +end + +struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - texelBufferAlignment::VkBool32 + borderColorSwizzle::VkBool32 + borderColorSwizzleFromImage::VkBool32 end -const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - -struct VkRenderPassTransformBeginInfoQCOM +struct VkSamplerBorderColorComponentMappingCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR + components::VkComponentMapping + srgb::VkBool32 end -struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR - renderArea::VkRect2D + pageableDeviceLocalMemory::VkBool32 end -@cenum VkDeviceMemoryReportEventTypeEXT::UInt32 begin - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647 +# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) +const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} + +function vkSetDeviceMemoryPriorityEXT(device, memory, priority) + ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) end -const VkDeviceMemoryReportFlagsEXT = VkFlags +function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +end -struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT +struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE sType::VkStructureType pNext::Ptr{Cvoid} - deviceMemoryReport::VkBool32 + descriptorSetHostMapping::VkBool32 end -struct VkDeviceMemoryReportCallbackDataEXT +struct VkDescriptorSetBindingReferenceVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - type::VkDeviceMemoryReportEventTypeEXT - memoryObjectId::UInt64 - size::VkDeviceSize - objectType::VkObjectType - objectHandle::UInt64 - heapIndex::UInt32 + descriptorSetLayout::VkDescriptorSetLayout + binding::UInt32 end -# typedef void ( VKAPI_PTR * PFN_vkDeviceMemoryReportCallbackEXT ) ( const VkDeviceMemoryReportCallbackDataEXT * pCallbackData , void * pUserData ) -const PFN_vkDeviceMemoryReportCallbackEXT = Ptr{Cvoid} - -struct VkDeviceDeviceMemoryReportCreateInfoEXT +struct VkDescriptorSetLayoutHostMappingInfoVALVE sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceMemoryReportFlagsEXT - pfnUserCallback::PFN_vkDeviceMemoryReportCallbackEXT - pUserData::Ptr{Cvoid} + descriptorOffset::Csize_t + descriptorSize::UInt32 end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , VkDisplayKHR display ) -const PFN_vkAcquireDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) +const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDrmDisplayEXT ) ( VkPhysicalDevice physicalDevice , int32_t drmFd , uint32_t connectorId , VkDisplayKHR * display ) -const PFN_vkGetDrmDisplayEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) +const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display) - ccall((:vkAcquireDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) + ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, VkDisplayKHR), physicalDevice, drmFd, display) +function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display) - ccall((:vkGetDrmDisplayEXT, libvulkan), VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) + ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -function vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, Int32, UInt32, Ptr{VkDisplayKHR}), physicalDevice, drmFd, connectorId, display) +function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) + ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) end -struct VkPhysicalDeviceRobustness2FeaturesEXT +struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustBufferAccess2::VkBool32 - robustImageAccess2::VkBool32 - nullDescriptor::VkBool32 + depthClampZeroOne::VkBool32 end -struct VkPhysicalDeviceRobustness2PropertiesEXT +struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - robustStorageBufferAccessSizeAlignment::VkDeviceSize - robustUniformBufferAccessSizeAlignment::VkDeviceSize + nonSeamlessCubeMap::VkBool32 end -struct VkSamplerCustomBorderColorCreateInfoEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColor::VkClearColorValue - format::VkFormat + fragmentDensityMapOffset::VkBool32 end -struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - maxCustomBorderColorSamplers::UInt32 + fragmentDensityOffsetGranularity::VkExtent2D end -struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM sType::VkStructureType pNext::Ptr{Cvoid} - customBorderColors::VkBool32 - customBorderColorWithoutFormat::VkBool32 + fragmentDensityOffsetCount::UInt32 + pFragmentDensityOffsets::Ptr{VkOffset2D} end -const VkPrivateDataSlotEXT = VkPrivateDataSlot - -const VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags - -const VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures +struct VkCopyMemoryIndirectCommandNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + size::VkDeviceSize +end -const VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo +struct VkCopyMemoryToImageIndirectCommandNV + srcAddress::VkDeviceAddress + bufferRowLength::UInt32 + bufferImageHeight::UInt32 + imageSubresource::VkImageSubresourceLayers + imageOffset::VkOffset3D + imageExtent::VkExtent3D +end -const VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + indirectCopy::VkBool32 +end -# typedef VkResult ( VKAPI_PTR * PFN_vkCreatePrivateDataSlotEXT ) ( VkDevice device , const VkPrivateDataSlotCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPrivateDataSlot * pPrivateDataSlot ) -const PFN_vkCreatePrivateDataSlotEXT = Ptr{Cvoid} +struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + supportedQueues::VkQueueFlags +end -# typedef void ( VKAPI_PTR * PFN_vkDestroyPrivateDataSlotEXT ) ( VkDevice device , VkPrivateDataSlot privateDataSlot , const VkAllocationCallbacks * pAllocator ) -const PFN_vkDestroyPrivateDataSlotEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride ) +const PFN_vkCmdCopyMemoryIndirectNV = Ptr{Cvoid} -# typedef VkResult ( VKAPI_PTR * PFN_vkSetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t data ) -const PFN_vkSetPrivateDataEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkCmdCopyMemoryToImageIndirectNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress copyBufferAddress , uint32_t copyCount , uint32_t stride , VkImage dstImage , VkImageLayout dstImageLayout , const VkImageSubresourceLayers * pImageSubresources ) +const PFN_vkCmdCopyMemoryToImageIndirectNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkGetPrivateDataEXT ) ( VkDevice device , VkObjectType objectType , uint64_t objectHandle , VkPrivateDataSlot privateDataSlot , uint64_t * pData ) -const PFN_vkGetPrivateDataEXT = Ptr{Cvoid} +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride) + ccall((:vkCmdCopyMemoryIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) +end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot) - ccall((:vkCreatePrivateDataSlotEXT, libvulkan), VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32), commandBuffer, copyBufferAddress, copyCount, stride) end -function vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkPrivateDataSlotCreateInfo}, Ptr{VkAllocationCallbacks}, Ptr{VkPrivateDataSlot}), device, pCreateInfo, pAllocator, pPrivateDataSlot) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + ccall((:vkCmdCopyMemoryToImageIndirectNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator) - ccall((:vkDestroyPrivateDataSlotEXT, libvulkan), Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +function vkCmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, UInt32, UInt32, VkImage, VkImageLayout, Ptr{VkImageSubresourceLayers}), commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) end -function vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, fptr) - ccall(fptr, Cvoid, (VkDevice, VkPrivateDataSlot, Ptr{VkAllocationCallbacks}), device, privateDataSlot, pAllocator) +const VkMemoryDecompressionMethodFlagBitsNV = VkFlags64 + +const VkMemoryDecompressionMethodFlagsNV = VkFlags64 + +struct VkDecompressMemoryRegionNV + srcAddress::VkDeviceAddress + dstAddress::VkDeviceAddress + compressedSize::VkDeviceSize + decompressedSize::VkDeviceSize + decompressionMethod::VkMemoryDecompressionMethodFlagsNV end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data) - ccall((:vkSetPrivateDataEXT, libvulkan), VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + memoryDecompression::VkBool32 end -function vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, fptr) - ccall(fptr, VkResult, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, UInt64), device, objectType, objectHandle, privateDataSlot, data) +struct VkPhysicalDeviceMemoryDecompressionPropertiesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + decompressionMethods::VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount::UInt64 end -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData) - ccall((:vkGetPrivateDataEXT, libvulkan), Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryNV ) ( VkCommandBuffer commandBuffer , uint32_t decompressRegionCount , const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) +const PFN_vkCmdDecompressMemoryNV = Ptr{Cvoid} -function vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkObjectType, UInt64, VkPrivateDataSlot, Ptr{UInt64}), device, objectType, objectHandle, privateDataSlot, pData) +# typedef void ( VKAPI_PTR * PFN_vkCmdDecompressMemoryIndirectCountNV ) ( VkCommandBuffer commandBuffer , VkDeviceAddress indirectCommandsAddress , VkDeviceAddress indirectCommandsCountAddress , uint32_t stride ) +const PFN_vkCmdDecompressMemoryIndirectCountNV = Ptr{Cvoid} + +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + ccall((:vkCmdDecompressMemoryNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) end -const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures +function vkCmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkDecompressMemoryRegionNV}), commandBuffer, decompressRegionCount, pDecompressMemoryRegions) +end -@cenum VkDeviceDiagnosticsConfigFlagBitsNV::UInt32 begin - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4 - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647 +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) + ccall((:vkCmdDecompressMemoryIndirectCountNV, libvulkan), Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) end -const VkDeviceDiagnosticsConfigFlagsNV = VkFlags +function vkCmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, UInt32), commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) +end -struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - diagnosticsConfig::VkBool32 + linearColorAttachment::VkBool32 end -struct VkDeviceDiagnosticsConfigCreateInfoNV +struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - flags::VkDeviceDiagnosticsConfigFlagsNV + imageCompressionControlSwapchain::VkBool32 end -@cenum VkFragmentShadingRateTypeNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647 +struct VkImageViewSampleWeightCreateInfoQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + filterCenter::VkOffset2D + filterSize::VkExtent2D + numPhases::UInt32 end -@cenum VkFragmentShadingRateNV::UInt32 begin - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647 +struct VkPhysicalDeviceImageProcessingFeaturesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + textureSampleWeighted::VkBool32 + textureBoxFilter::VkBool32 + textureBlockMatch::VkBool32 end -struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +struct VkPhysicalDeviceImageProcessingPropertiesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentShadingRateEnums::VkBool32 - supersampleFragmentShadingRates::VkBool32 - noInvocationFragmentShadingRates::VkBool32 + maxWeightFilterPhases::UInt32 + maxWeightFilterDimension::VkExtent2D + maxBlockMatchRegion::VkExtent2D + maxBoxFilterBlockSize::VkExtent2D end -struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - maxFragmentShadingRateInvocationCount::VkSampleCountFlagBits + extendedDynamicState3TessellationDomainOrigin::VkBool32 + extendedDynamicState3DepthClampEnable::VkBool32 + extendedDynamicState3PolygonMode::VkBool32 + extendedDynamicState3RasterizationSamples::VkBool32 + extendedDynamicState3SampleMask::VkBool32 + extendedDynamicState3AlphaToCoverageEnable::VkBool32 + extendedDynamicState3AlphaToOneEnable::VkBool32 + extendedDynamicState3LogicOpEnable::VkBool32 + extendedDynamicState3ColorBlendEnable::VkBool32 + extendedDynamicState3ColorBlendEquation::VkBool32 + extendedDynamicState3ColorWriteMask::VkBool32 + extendedDynamicState3RasterizationStream::VkBool32 + extendedDynamicState3ConservativeRasterizationMode::VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize::VkBool32 + extendedDynamicState3DepthClipEnable::VkBool32 + extendedDynamicState3SampleLocationsEnable::VkBool32 + extendedDynamicState3ColorBlendAdvanced::VkBool32 + extendedDynamicState3ProvokingVertexMode::VkBool32 + extendedDynamicState3LineRasterizationMode::VkBool32 + extendedDynamicState3LineStippleEnable::VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne::VkBool32 + extendedDynamicState3ViewportWScalingEnable::VkBool32 + extendedDynamicState3ViewportSwizzle::VkBool32 + extendedDynamicState3CoverageToColorEnable::VkBool32 + extendedDynamicState3CoverageToColorLocation::VkBool32 + extendedDynamicState3CoverageModulationMode::VkBool32 + extendedDynamicState3CoverageModulationTableEnable::VkBool32 + extendedDynamicState3CoverageModulationTable::VkBool32 + extendedDynamicState3CoverageReductionMode::VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable::VkBool32 + extendedDynamicState3ShadingRateImageEnable::VkBool32 end -struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT sType::VkStructureType pNext::Ptr{Cvoid} - shadingRateType::VkFragmentShadingRateTypeNV - shadingRate::VkFragmentShadingRateNV - combinerOps::NTuple{2, VkFragmentShadingRateCombinerOpKHR} + dynamicPrimitiveTopologyUnrestricted::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetFragmentShadingRateEnumNV ) ( VkCommandBuffer commandBuffer , VkFragmentShadingRateNV shadingRate , const VkFragmentShadingRateCombinerOpKHR combinerOps [ 2 ] ) -const PFN_vkCmdSetFragmentShadingRateEnumNV = Ptr{Cvoid} - -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps) - ccall((:vkCmdSetFragmentShadingRateEnumNV, libvulkan), Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendEquationEXT + srcColorBlendFactor::VkBlendFactor + dstColorBlendFactor::VkBlendFactor + colorBlendOp::VkBlendOp + srcAlphaBlendFactor::VkBlendFactor + dstAlphaBlendFactor::VkBlendFactor + alphaBlendOp::VkBlendOp end -function vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkFragmentShadingRateNV, Ptr{VkFragmentShadingRateCombinerOpKHR}), commandBuffer, shadingRate, combinerOps) +struct VkColorBlendAdvancedEXT + advancedBlendOp::VkBlendOp + srcPremultiplied::VkBool32 + dstPremultiplied::VkBool32 + blendOverlap::VkBlendOverlapEXT + clampResults::VkBool32 end -@cenum VkAccelerationStructureMotionInstanceTypeNV::UInt32 begin - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647 -end +# typedef void ( VKAPI_PTR * PFN_vkCmdSetTessellationDomainOriginEXT ) ( VkCommandBuffer commandBuffer , VkTessellationDomainOrigin domainOrigin ) +const PFN_vkCmdSetTessellationDomainOriginEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInfoFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClampEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClampEnable ) +const PFN_vkCmdSetDepthClampEnableEXT = Ptr{Cvoid} -const VkAccelerationStructureMotionInstanceFlagsNV = VkFlags +# typedef void ( VKAPI_PTR * PFN_vkCmdSetPolygonModeEXT ) ( VkCommandBuffer commandBuffer , VkPolygonMode polygonMode ) +const PFN_vkCmdSetPolygonModeEXT = Ptr{Cvoid} -struct VkDeviceOrHostAddressConstKHR - data::NTuple{8, UInt8} +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationSamplesEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits rasterizationSamples ) +const PFN_vkCmdSetRasterizationSamplesEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleMaskEXT ) ( VkCommandBuffer commandBuffer , VkSampleCountFlagBits samples , const VkSampleMask * pSampleMask ) +const PFN_vkCmdSetSampleMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToCoverageEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToCoverageEnable ) +const PFN_vkCmdSetAlphaToCoverageEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetAlphaToOneEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 alphaToOneEnable ) +const PFN_vkCmdSetAlphaToOneEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 logicOpEnable ) +const PFN_vkCmdSetLogicOpEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkBool32 * pColorBlendEnables ) +const PFN_vkCmdSetColorBlendEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendEquationEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendEquationEXT * pColorBlendEquations ) +const PFN_vkCmdSetColorBlendEquationEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteMaskEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorComponentFlags * pColorWriteMasks ) +const PFN_vkCmdSetColorWriteMaskEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizationStreamEXT ) ( VkCommandBuffer commandBuffer , uint32_t rasterizationStream ) +const PFN_vkCmdSetRasterizationStreamEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetConservativeRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkConservativeRasterizationModeEXT conservativeRasterizationMode ) +const PFN_vkCmdSetConservativeRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT ) ( VkCommandBuffer commandBuffer , float extraPrimitiveOverestimationSize ) +const PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthClipEnable ) +const PFN_vkCmdSetDepthClipEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetSampleLocationsEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 sampleLocationsEnable ) +const PFN_vkCmdSetSampleLocationsEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorBlendAdvancedEXT ) ( VkCommandBuffer commandBuffer , uint32_t firstAttachment , uint32_t attachmentCount , const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) +const PFN_vkCmdSetColorBlendAdvancedEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetProvokingVertexModeEXT ) ( VkCommandBuffer commandBuffer , VkProvokingVertexModeEXT provokingVertexMode ) +const PFN_vkCmdSetProvokingVertexModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineRasterizationModeEXT ) ( VkCommandBuffer commandBuffer , VkLineRasterizationModeEXT lineRasterizationMode ) +const PFN_vkCmdSetLineRasterizationModeEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetLineStippleEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 stippledLineEnable ) +const PFN_vkCmdSetLineStippleEnableEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthClipNegativeOneToOneEXT ) ( VkCommandBuffer commandBuffer , VkBool32 negativeOneToOne ) +const PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportWScalingEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 viewportWScalingEnable ) +const PFN_vkCmdSetViewportWScalingEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetViewportSwizzleNV ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewportSwizzleNV * pViewportSwizzles ) +const PFN_vkCmdSetViewportSwizzleNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageToColorEnable ) +const PFN_vkCmdSetCoverageToColorEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageToColorLocationNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageToColorLocation ) +const PFN_vkCmdSetCoverageToColorLocationNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageModulationModeNV coverageModulationMode ) +const PFN_vkCmdSetCoverageModulationModeNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 coverageModulationTableEnable ) +const PFN_vkCmdSetCoverageModulationTableEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageModulationTableNV ) ( VkCommandBuffer commandBuffer , uint32_t coverageModulationTableCount , const float * pCoverageModulationTable ) +const PFN_vkCmdSetCoverageModulationTableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetShadingRateImageEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 shadingRateImageEnable ) +const PFN_vkCmdSetShadingRateImageEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetRepresentativeFragmentTestEnableNV ) ( VkCommandBuffer commandBuffer , VkBool32 representativeFragmentTestEnable ) +const PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Ptr{Cvoid} + +# typedef void ( VKAPI_PTR * PFN_vkCmdSetCoverageReductionModeNV ) ( VkCommandBuffer commandBuffer , VkCoverageReductionModeNV coverageReductionMode ) +const PFN_vkCmdSetCoverageReductionModeNV = Ptr{Cvoid} + +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin) + ccall((:vkCmdSetTessellationDomainOriginEXT, libvulkan), Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) +function vkCmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkTessellationDomainOrigin), commandBuffer, domainOrigin) end -function Base.getproperty(x::VkDeviceOrHostAddressConstKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressConstKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable) + ccall((:vkCmdSetDepthClampEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressConstKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClampEnable) end -const __U_VkDeviceOrHostAddressConstKHR = Union{VkDeviceAddress, Ptr{Cvoid}} +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode) + ccall((:vkCmdSetPolygonModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) +end -function VkDeviceOrHostAddressConstKHR(val::__U_VkDeviceOrHostAddressConstKHR) - ref = Ref{VkDeviceOrHostAddressConstKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressConstKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] +function vkCmdSetPolygonModeEXT(commandBuffer, polygonMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkPolygonMode), commandBuffer, polygonMode) end -struct VkAccelerationStructureGeometryMotionTrianglesDataNV - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexData::VkDeviceOrHostAddressConstKHR +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples) + ccall((:vkCmdSetRasterizationSamplesEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMotionInfoNV - sType::VkStructureType - pNext::Ptr{Cvoid} - maxInstances::UInt32 - flags::VkAccelerationStructureMotionInfoFlagsNV +function vkCmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits), commandBuffer, rasterizationSamples) end -struct VkAccelerationStructureMatrixMotionInstanceNV - data::NTuple{112, UInt8} +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask) + ccall((:vkCmdSetSampleMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkTransformMatrixKHR}(x + 0) - f === :transformT1 && return Ptr{VkTransformMatrixKHR}(x + 48) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 96), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 96), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 100), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 100), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 104) - return getfield(x, f) +function vkCmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkSampleCountFlagBits, Ptr{VkSampleMask}), commandBuffer, samples, pSampleMask) end -function Base.getproperty(x::VkAccelerationStructureMatrixMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureMatrixMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable) + ccall((:vkCmdSetAlphaToCoverageEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToCoverageEnable) end -function VkAccelerationStructureMatrixMotionInstanceNV(transformT0::VkTransformMatrixKHR, transformT1::VkTransformMatrixKHR, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureMatrixMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMatrixMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable) + ccall((:vkCmdSetAlphaToOneEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -struct VkSRTDataNV - sx::Cfloat - a::Cfloat - b::Cfloat - pvx::Cfloat - sy::Cfloat - c::Cfloat - pvy::Cfloat - sz::Cfloat - pvz::Cfloat - qx::Cfloat - qy::Cfloat - qz::Cfloat - qw::Cfloat - tx::Cfloat - ty::Cfloat - tz::Cfloat +function vkCmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, alphaToOneEnable) end -struct VkAccelerationStructureSRTMotionInstanceNV - data::NTuple{144, UInt8} +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable) + ccall((:vkCmdSetLogicOpEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -function Base.getproperty(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol) - f === :transformT0 && return Ptr{VkSRTDataNV}(x + 0) - f === :transformT1 && return Ptr{VkSRTDataNV}(x + 64) - f === :instanceCustomIndex && return (Ptr{UInt32}(x + 128), 0, 24) - f === :mask && return (Ptr{UInt32}(x + 128), 24, 8) - f === :instanceShaderBindingTableRecordOffset && return (Ptr{UInt32}(x + 132), 0, 24) - f === :flags && return (Ptr{VkGeometryInstanceFlagsKHR}(x + 132), 24, 8) - f === :accelerationStructureReference && return Ptr{UInt64}(x + 136) - return getfield(x, f) +function vkCmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, logicOpEnable) end -function Base.getproperty(x::VkAccelerationStructureSRTMotionInstanceNV, f::Symbol) - r = Ref{VkAccelerationStructureSRTMotionInstanceNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, r) - fptr = getproperty(ptr, f) - begin - if fptr isa Ptr - return GC.@preserve(r, unsafe_load(fptr)) - else - (baseptr, offset, width) = fptr - ty = eltype(baseptr) - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = GC.@preserve(r, unsafe_load(baseptr32)) - if offset + width > 32 - u64 |= GC.@preserve(r, unsafe_load(baseptr32 + 4)) << 32 - end - u64 = u64 >> offset & (1 << width - 1) - return u64 % ty - end - end +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + ccall((:vkCmdSetColorBlendEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkBool32}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + ccall((:vkCmdSetColorBlendEquationEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) +end + +function vkCmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendEquationEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureSRTMotionInstanceNV}, f::Symbol, v) - fptr = getproperty(x, f) - if fptr isa Ptr - unsafe_store!(getproperty(x, f), v) - else - (baseptr, offset, width) = fptr - baseptr32 = convert(Ptr{UInt32}, baseptr) - u64 = unsafe_load(baseptr32) - straddle = offset + width > 32 - if straddle - u64 |= unsafe_load(baseptr32 + 4) << 32 - end - mask = 1 << width - 1 - u64 &= ~(mask << offset) - u64 |= (unsigned(v) & mask) << offset - unsafe_store!(baseptr32, u64 & typemax(UInt32)) - if straddle - unsafe_store!(baseptr32 + 4, u64 >> 32) - end - end +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) + ccall((:vkCmdSetColorWriteMaskEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -function VkAccelerationStructureSRTMotionInstanceNV(transformT0::VkSRTDataNV, transformT1::VkSRTDataNV, instanceCustomIndex::UInt32, mask::UInt32, instanceShaderBindingTableRecordOffset::UInt32, flags::VkGeometryInstanceFlagsKHR, accelerationStructureReference::UInt64) - ref = Ref{VkAccelerationStructureSRTMotionInstanceNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureSRTMotionInstanceNV}, ref) - ptr.transformT0 = transformT0 - ptr.transformT1 = transformT1 - ptr.instanceCustomIndex = instanceCustomIndex - ptr.mask = mask - ptr.instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - ptr.flags = flags - ptr.accelerationStructureReference = accelerationStructureReference - ref[] +function vkCmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorComponentFlags}), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) end -struct VkAccelerationStructureMotionInstanceDataNV - data::NTuple{144, UInt8} +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream) + ccall((:vkCmdSetRasterizationStreamEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol) - f === :staticInstance && return Ptr{VkAccelerationStructureInstanceKHR}(x + 0) - f === :matrixMotionInstance && return Ptr{VkAccelerationStructureMatrixMotionInstanceNV}(x + 0) - f === :srtMotionInstance && return Ptr{VkAccelerationStructureSRTMotionInstanceNV}(x + 0) - return getfield(x, f) +function vkCmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, rasterizationStream) end -function Base.getproperty(x::VkAccelerationStructureMotionInstanceDataNV, f::Symbol) - r = Ref{VkAccelerationStructureMotionInstanceDataNV}(x) - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode) + ccall((:vkCmdSetConservativeRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -function Base.setproperty!(x::Ptr{VkAccelerationStructureMotionInstanceDataNV}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) +function vkCmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkConservativeRasterizationModeEXT), commandBuffer, conservativeRasterizationMode) end -const __U_VkAccelerationStructureMotionInstanceDataNV = Union{VkAccelerationStructureInstanceKHR, VkAccelerationStructureMatrixMotionInstanceNV, VkAccelerationStructureSRTMotionInstanceNV} +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize) + ccall((:vkCmdSetExtraPrimitiveOverestimationSizeEXT, libvulkan), Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) +end -function VkAccelerationStructureMotionInstanceDataNV(val::__U_VkAccelerationStructureMotionInstanceDataNV) - ref = Ref{VkAccelerationStructureMotionInstanceDataNV}() - ptr = Base.unsafe_convert(Ptr{VkAccelerationStructureMotionInstanceDataNV}, ref) - if val isa VkAccelerationStructureInstanceKHR - ptr.staticInstance = val - elseif val isa VkAccelerationStructureMatrixMotionInstanceNV - ptr.matrixMotionInstance = val - elseif val isa VkAccelerationStructureSRTMotionInstanceNV - ptr.srtMotionInstance = val - end - ref[] +function vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Cfloat), commandBuffer, extraPrimitiveOverestimationSize) end -struct VkAccelerationStructureMotionInstanceNV - type::VkAccelerationStructureMotionInstanceTypeNV - flags::VkAccelerationStructureMotionInstanceFlagsNV - data::VkAccelerationStructureMotionInstanceDataNV +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable) + ccall((:vkCmdSetDepthClipEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV - sType::VkStructureType - pNext::Ptr{Cvoid} - rayTracingMotionBlur::VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect::VkBool32 +function vkCmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthClipEnable) end -struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - ycbcr2plane444Formats::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable) + ccall((:vkCmdSetSampleLocationsEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - fragmentDensityMapDeferred::VkBool32 +function vkCmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, sampleLocationsEnable) end -struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - subsampledLoads::VkBool32 - subsampledCoarseReconstructionEarlyAccess::VkBool32 - maxSubsampledArrayLayers::UInt32 - maxDescriptorSetSubsampledSamplers::UInt32 +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) + ccall((:vkCmdSetColorBlendAdvancedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -struct VkCopyCommandTransformInfoQCOM - sType::VkStructureType - pNext::Ptr{Cvoid} - transform::VkSurfaceTransformFlagBitsKHR +function vkCmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkColorBlendAdvancedEXT}), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) end -const VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode) + ccall((:vkCmdSetProvokingVertexModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) +end -struct VkPhysicalDevice4444FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatA4R4G4B4::VkBool32 - formatA4B4G4R4::VkBool32 +function vkCmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkProvokingVertexModeEXT), commandBuffer, provokingVertexMode) end -struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - sType::VkStructureType - pNext::Ptr{Cvoid} - rasterizationOrderColorAttachmentAccess::VkBool32 - rasterizationOrderDepthAttachmentAccess::VkBool32 - rasterizationOrderStencilAttachmentAccess::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode) + ccall((:vkCmdSetLineRasterizationModeEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - formatRgba10x6WithoutYCbCrSampler::VkBool32 +function vkCmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkLineRasterizationModeEXT), commandBuffer, lineRasterizationMode) end -# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) -const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable) + ccall((:vkCmdSetLineStippleEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) -const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} +function vkCmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, stippledLineEnable) +end -function vkAcquireWinrtDisplayNV(physicalDevice, display) - ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne) + ccall((:vkCmdSetDepthClipNegativeOneToOneEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +function vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, negativeOneToOne) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) - ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable) + ccall((:vkCmdSetViewportWScalingEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) - ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +function vkCmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, viewportWScalingEnable) end -struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorType::VkBool32 +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + ccall((:vkCmdSetViewportSwizzleNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeListVALVE - descriptorTypeCount::UInt32 - pDescriptorTypes::Ptr{VkDescriptorType} +function vkCmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, Ptr{VkViewportSwizzleNV}), commandBuffer, firstViewport, viewportCount, pViewportSwizzles) end -struct VkMutableDescriptorTypeCreateInfoVALVE - sType::VkStructureType - pNext::Ptr{Cvoid} - mutableDescriptorTypeListCount::UInt32 - pMutableDescriptorTypeLists::Ptr{VkMutableDescriptorTypeListVALVE} +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable) + ccall((:vkCmdSetCoverageToColorEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - vertexInputDynamicState::VkBool32 +function vkCmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageToColorEnable) end -struct VkVertexInputBindingDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - binding::UInt32 - stride::UInt32 - inputRate::VkVertexInputRate - divisor::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation) + ccall((:vkCmdSetCoverageToColorLocationNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -struct VkVertexInputAttributeDescription2EXT - sType::VkStructureType - pNext::Ptr{Cvoid} - location::UInt32 - binding::UInt32 - format::VkFormat - offset::UInt32 +function vkCmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, coverageToColorLocation) end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetVertexInputEXT ) ( VkCommandBuffer commandBuffer , uint32_t vertexBindingDescriptionCount , const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions , uint32_t vertexAttributeDescriptionCount , const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) -const PFN_vkCmdSetVertexInputEXT = Ptr{Cvoid} +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode) + ccall((:vkCmdSetCoverageModulationModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) +end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - ccall((:vkCmdSetVertexInputEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageModulationModeNV), commandBuffer, coverageModulationMode) end -function vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkVertexInputBindingDescription2EXT}, UInt32, Ptr{VkVertexInputAttributeDescription2EXT}), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable) + ccall((:vkCmdSetCoverageModulationTableEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDrmPropertiesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - hasPrimary::VkBool32 - hasRender::VkBool32 - primaryMajor::Int64 - primaryMinor::Int64 - renderMajor::Int64 - renderMinor::Int64 +function vkCmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, coverageModulationTableEnable) end -struct VkPhysicalDeviceDepthClipControlFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - depthClipControl::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + ccall((:vkCmdSetCoverageModulationTableNV, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPipelineViewportDepthClipControlCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - negativeOneToOne::VkBool32 +function vkCmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{Cfloat}), commandBuffer, coverageModulationTableCount, pCoverageModulationTable) end -struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - primitiveTopologyListRestart::VkBool32 - primitiveTopologyPatchListRestart::VkBool32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable) + ccall((:vkCmdSetShadingRateImageEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkSubpassShadingPipelineCreateInfoHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - renderPass::VkRenderPass - subpass::UInt32 +function vkCmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, shadingRateImageEnable) end -struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - subpassShading::VkBool32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable) + ccall((:vkCmdSetRepresentativeFragmentTestEnableNV, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI - sType::VkStructureType - pNext::Ptr{Cvoid} - maxSubpassShadingWorkgroupSizeAspectRatio::UInt32 +function vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, representativeFragmentTestEnable) end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI ) ( VkDevice device , VkRenderPass renderpass , VkExtent2D * pMaxWorkgroupSize ) -const PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode) + ccall((:vkCmdSetCoverageReductionModeNV, libvulkan), Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSubpassShadingHUAWEI ) ( VkCommandBuffer commandBuffer ) -const PFN_vkCmdSubpassShadingHUAWEI = Ptr{Cvoid} +function vkCmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkCoverageReductionModeNV), commandBuffer, coverageReductionMode) +end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize) - ccall((:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, libvulkan), VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +@cenum VkSubpassMergeStatusEXT::UInt32 begin + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647 end -function vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, fptr) - ccall(fptr, VkResult, (VkDevice, VkRenderPass, Ptr{VkExtent2D}), device, renderpass, pMaxWorkgroupSize) +struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + subpassMergeFeedback::VkBool32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer) - ccall((:vkCmdSubpassShadingHUAWEI, libvulkan), Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationControlEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + disallowMerging::VkBool32 end -function vkCmdSubpassShadingHUAWEI(commandBuffer, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer,), commandBuffer) +struct VkRenderPassCreationFeedbackInfoEXT + postMergeSubpassCount::UInt32 end -struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +struct VkRenderPassCreationFeedbackCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - invocationMask::VkBool32 + pRenderPassFeedback::Ptr{VkRenderPassCreationFeedbackInfoEXT} end -# typedef void ( VKAPI_PTR * PFN_vkCmdBindInvocationMaskHUAWEI ) ( VkCommandBuffer commandBuffer , VkImageView imageView , VkImageLayout imageLayout ) -const PFN_vkCmdBindInvocationMaskHUAWEI = Ptr{Cvoid} +struct VkRenderPassSubpassFeedbackInfoEXT + subpassMergeStatus::VkSubpassMergeStatusEXT + description::NTuple{256, Cchar} + postMergeIndex::UInt32 +end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout) - ccall((:vkCmdBindInvocationMaskHUAWEI, libvulkan), Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +struct VkRenderPassSubpassFeedbackCreateInfoEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pSubpassFeedback::Ptr{VkRenderPassSubpassFeedbackInfoEXT} end -function vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkImageView, VkImageLayout), commandBuffer, imageView, imageLayout) +@cenum VkDirectDriverLoadingModeLUNARG::UInt32 begin + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 2147483647 end -const VkRemoteAddressNV = Ptr{Cvoid} +const VkDirectDriverLoadingFlagsLUNARG = VkFlags -struct VkMemoryGetRemoteAddressInfoNV +# typedef PFN_vkVoidFunction ( VKAPI_PTR * PFN_vkGetInstanceProcAddrLUNARG ) ( VkInstance instance , const char * pName ) +const PFN_vkGetInstanceProcAddrLUNARG = Ptr{Cvoid} + +struct VkDirectDriverLoadingInfoLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - memory::VkDeviceMemory - handleType::VkExternalMemoryHandleTypeFlagBits + flags::VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr::PFN_vkGetInstanceProcAddrLUNARG end -struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV +struct VkDirectDriverLoadingListLUNARG sType::VkStructureType pNext::Ptr{Cvoid} - externalMemoryRDMA::VkBool32 + mode::VkDirectDriverLoadingModeLUNARG + driverCount::UInt32 + pDrivers::Ptr{VkDirectDriverLoadingInfoLUNARG} end -# typedef VkResult ( VKAPI_PTR * PFN_vkGetMemoryRemoteAddressNV ) ( VkDevice device , const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo , VkRemoteAddressNV * pAddress ) -const PFN_vkGetMemoryRemoteAddressNV = Ptr{Cvoid} - -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress) - ccall((:vkGetMemoryRemoteAddressNV, libvulkan), VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifier::VkBool32 end -function vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, fptr) - ccall(fptr, VkResult, (VkDevice, Ptr{VkMemoryGetRemoteAddressInfoNV}, Ptr{VkRemoteAddressNV}), device, pMemoryGetRemoteAddressInfo, pAddress) +struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderModuleIdentifierAlgorithmUUID::NTuple{16, UInt8} end -struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT sType::VkStructureType pNext::Ptr{Cvoid} - extendedDynamicState2::VkBool32 - extendedDynamicState2LogicOp::VkBool32 - extendedDynamicState2PatchControlPoints::VkBool32 + identifierSize::UInt32 + pIdentifier::Ptr{UInt8} end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPatchControlPointsEXT ) ( VkCommandBuffer commandBuffer , uint32_t patchControlPoints ) -const PFN_vkCmdSetPatchControlPointsEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetRasterizerDiscardEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 rasterizerDiscardEnable ) -const PFN_vkCmdSetRasterizerDiscardEnableEXT = Ptr{Cvoid} - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetDepthBiasEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 depthBiasEnable ) -const PFN_vkCmdSetDepthBiasEnableEXT = Ptr{Cvoid} +struct VkShaderModuleIdentifierEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + identifierSize::UInt32 + identifier::NTuple{32, UInt8} +end -# typedef void ( VKAPI_PTR * PFN_vkCmdSetLogicOpEXT ) ( VkCommandBuffer commandBuffer , VkLogicOp logicOp ) -const PFN_vkCmdSetLogicOpEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleIdentifierEXT ) ( VkDevice device , VkShaderModule shaderModule , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleIdentifierEXT = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdSetPrimitiveRestartEnableEXT ) ( VkCommandBuffer commandBuffer , VkBool32 primitiveRestartEnable ) -const PFN_vkCmdSetPrimitiveRestartEnableEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkGetShaderModuleCreateInfoIdentifierEXT ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , VkShaderModuleIdentifierEXT * pIdentifier ) +const PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Ptr{Cvoid} -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints) - ccall((:vkCmdSetPatchControlPointsEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier) + ccall((:vkGetShaderModuleIdentifierEXT, libvulkan), Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, patchControlPoints) +function vkGetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, VkShaderModule, Ptr{VkShaderModuleIdentifierEXT}), device, shaderModule, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable) - ccall((:vkCmdSetRasterizerDiscardEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier) + ccall((:vkGetShaderModuleCreateInfoIdentifierEXT, libvulkan), Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, rasterizerDiscardEnable) +function vkGetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier, fptr) + ccall(fptr, Cvoid, (VkDevice, Ptr{VkShaderModuleCreateInfo}, Ptr{VkShaderModuleIdentifierEXT}), device, pCreateInfo, pIdentifier) end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable) - ccall((:vkCmdSetDepthBiasEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +const VkOpticalFlowSessionNV_T = Cvoid + +const VkOpticalFlowSessionNV = Ptr{VkOpticalFlowSessionNV_T} + +@cenum VkOpticalFlowPerformanceLevelNV::UInt32 begin + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647 end -function vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, depthBiasEnable) +@cenum VkOpticalFlowSessionBindingPointNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp) - ccall((:vkCmdSetLogicOpEXT, libvulkan), Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +@cenum VkOpticalFlowGridSizeFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8 + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetLogicOpEXT(commandBuffer, logicOp, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkLogicOp), commandBuffer, logicOp) +const VkOpticalFlowGridSizeFlagsNV = VkFlags + +@cenum VkOpticalFlowUsageFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16 + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable) - ccall((:vkCmdSetPrimitiveRestartEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowUsageFlagsNV = VkFlags + +@cenum VkOpticalFlowSessionCreateFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16 + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -function vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, VkBool32), commandBuffer, primitiveRestartEnable) +const VkOpticalFlowSessionCreateFlagsNV = VkFlags + +@cenum VkOpticalFlowExecuteFlagBitsNV::UInt32 begin + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1 + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647 end -struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +const VkOpticalFlowExecuteFlagsNV = VkFlags + +struct VkPhysicalDeviceOpticalFlowFeaturesNV sType::VkStructureType pNext::Ptr{Cvoid} - colorWriteEnable::VkBool32 + opticalFlow::VkBool32 end -struct VkPipelineColorWriteCreateInfoEXT +struct VkPhysicalDeviceOpticalFlowPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - attachmentCount::UInt32 - pColorWriteEnables::Ptr{VkBool32} -end - -# typedef void ( VKAPI_PTR * PFN_vkCmdSetColorWriteEnableEXT ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkBool32 * pColorWriteEnables ) -const PFN_vkCmdSetColorWriteEnableEXT = Ptr{Cvoid} - -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables) - ccall((:vkCmdSetColorWriteEnableEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) + supportedOutputGridSizes::VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes::VkOpticalFlowGridSizeFlagsNV + hintSupported::VkBool32 + costSupported::VkBool32 + bidirectionalFlowSupported::VkBool32 + globalFlowSupported::VkBool32 + minWidth::UInt32 + minHeight::UInt32 + maxWidth::UInt32 + maxHeight::UInt32 + maxNumRegionsOfInterest::UInt32 end -function vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkBool32}), commandBuffer, attachmentCount, pColorWriteEnables) +struct VkOpticalFlowImageFormatInfoNV + sType::VkStructureType + pNext::Ptr{Cvoid} + usage::VkOpticalFlowUsageFlagsNV end -const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - -const VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR - -struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +struct VkOpticalFlowImageFormatPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::VkBool32 + format::VkFormat end -struct VkImageViewMinLodCreateInfoEXT +struct VkOpticalFlowSessionCreateInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - minLod::Cfloat + width::UInt32 + height::UInt32 + imageFormat::VkFormat + flowVectorFormat::VkFormat + costFormat::VkFormat + outputGridSize::VkOpticalFlowGridSizeFlagsNV + hintGridSize::VkOpticalFlowGridSizeFlagsNV + performanceLevel::VkOpticalFlowPerformanceLevelNV + flags::VkOpticalFlowSessionCreateFlagsNV end -struct VkPhysicalDeviceMultiDrawFeaturesEXT +struct VkOpticalFlowSessionCreatePrivateDataInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - multiDraw::VkBool32 + id::UInt32 + size::UInt32 + pPrivateData::Ptr{Cvoid} end -struct VkPhysicalDeviceMultiDrawPropertiesEXT +struct VkOpticalFlowExecuteInfoNV sType::VkStructureType pNext::Ptr{Cvoid} - maxMultiDrawCount::UInt32 + flags::VkOpticalFlowExecuteFlagsNV + regionCount::UInt32 + pRegions::Ptr{VkRect2D} end -struct VkMultiDrawInfoEXT - firstVertex::UInt32 - vertexCount::UInt32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV ) ( VkPhysicalDevice physicalDevice , const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo , uint32_t * pFormatCount , VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) +const PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Ptr{Cvoid} -struct VkMultiDrawIndexedInfoEXT - firstIndex::UInt32 - indexCount::UInt32 - vertexOffset::Int32 -end +# typedef VkResult ( VKAPI_PTR * PFN_vkCreateOpticalFlowSessionNV ) ( VkDevice device , const VkOpticalFlowSessionCreateInfoNV * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkOpticalFlowSessionNV * pSession ) +const PFN_vkCreateOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawInfoEXT * pVertexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride ) -const PFN_vkCmdDrawMultiEXT = Ptr{Cvoid} +# typedef void ( VKAPI_PTR * PFN_vkDestroyOpticalFlowSessionNV ) ( VkDevice device , VkOpticalFlowSessionNV session , const VkAllocationCallbacks * pAllocator ) +const PFN_vkDestroyOpticalFlowSessionNV = Ptr{Cvoid} -# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMultiIndexedEXT ) ( VkCommandBuffer commandBuffer , uint32_t drawCount , const VkMultiDrawIndexedInfoEXT * pIndexInfo , uint32_t instanceCount , uint32_t firstInstance , uint32_t stride , const int32_t * pVertexOffset ) -const PFN_vkCmdDrawMultiIndexedEXT = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkBindOpticalFlowSessionImageNV ) ( VkDevice device , VkOpticalFlowSessionNV session , VkOpticalFlowSessionBindingPointNV bindingPoint , VkImageView view , VkImageLayout layout ) +const PFN_vkBindOpticalFlowSessionImageNV = Ptr{Cvoid} -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - ccall((:vkCmdDrawMultiEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +# typedef void ( VKAPI_PTR * PFN_vkCmdOpticalFlowExecuteNV ) ( VkCommandBuffer commandBuffer , VkOpticalFlowSessionNV session , const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) +const PFN_vkCmdOpticalFlowExecuteNV = Ptr{Cvoid} + +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + ccall((:vkGetPhysicalDeviceOpticalFlowImageFormatsNV, libvulkan), VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawInfoEXT}, UInt32, UInt32, UInt32), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) +function vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, Ptr{VkOpticalFlowImageFormatInfoNV}, Ptr{UInt32}, Ptr{VkOpticalFlowImageFormatPropertiesNV}), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - ccall((:vkCmdDrawMultiIndexedEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession) + ccall((:vkCreateOpticalFlowSessionNV, libvulkan), VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -function vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, Ptr{VkMultiDrawIndexedInfoEXT}, UInt32, UInt32, UInt32, Ptr{Int32}), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) +function vkCreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkOpticalFlowSessionCreateInfoNV}, Ptr{VkAllocationCallbacks}, Ptr{VkOpticalFlowSessionNV}), device, pCreateInfo, pAllocator, pSession) end -struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - borderColorSwizzle::VkBool32 - borderColorSwizzleFromImage::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator) + ccall((:vkDestroyOpticalFlowSessionNV, libvulkan), Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkSamplerBorderColorComponentMappingCreateInfoEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - components::VkComponentMapping - srgb::VkBool32 +function vkDestroyOpticalFlowSessionNV(device, session, pAllocator, fptr) + ccall(fptr, Cvoid, (VkDevice, VkOpticalFlowSessionNV, Ptr{VkAllocationCallbacks}), device, session, pAllocator) end -struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - sType::VkStructureType - pNext::Ptr{Cvoid} - pageableDeviceLocalMemory::VkBool32 +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout) + ccall((:vkBindOpticalFlowSessionImageNV, libvulkan), VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) end -# typedef void ( VKAPI_PTR * PFN_vkSetDeviceMemoryPriorityEXT ) ( VkDevice device , VkDeviceMemory memory , float priority ) -const PFN_vkSetDeviceMemoryPriorityEXT = Ptr{Cvoid} +function vkBindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout, fptr) + ccall(fptr, VkResult, (VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout), device, session, bindingPoint, view, layout) +end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority) - ccall((:vkSetDeviceMemoryPriorityEXT, libvulkan), Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo) + ccall((:vkCmdOpticalFlowExecuteNV, libvulkan), Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -function vkSetDeviceMemoryPriorityEXT(device, memory, priority, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDeviceMemory, Cfloat), device, memory, priority) +function vkCmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkOpticalFlowSessionNV, Ptr{VkOpticalFlowExecuteInfoNV}), commandBuffer, session, pExecuteInfo) end -struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +struct VkPhysicalDeviceLegacyDitheringFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetHostMapping::VkBool32 + legacyDithering::VkBool32 end -struct VkDescriptorSetBindingReferenceVALVE +struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT sType::VkStructureType pNext::Ptr{Cvoid} - descriptorSetLayout::VkDescriptorSetLayout - binding::UInt32 + pipelineProtectedAccess::VkBool32 end -struct VkDescriptorSetLayoutHostMappingInfoVALVE +struct VkPhysicalDeviceTilePropertiesFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - descriptorOffset::Csize_t - descriptorSize::UInt32 + tileProperties::VkBool32 end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE ) ( VkDevice device , const VkDescriptorSetBindingReferenceVALVE * pBindingReference , VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) -const PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Ptr{Cvoid} +struct VkTilePropertiesQCOM + sType::VkStructureType + pNext::Ptr{Cvoid} + tileSize::VkExtent3D + apronSize::VkExtent2D + origin::VkOffset2D +end -# typedef void ( VKAPI_PTR * PFN_vkGetDescriptorSetHostMappingVALVE ) ( VkDevice device , VkDescriptorSet descriptorSet , void * * ppData ) -const PFN_vkGetDescriptorSetHostMappingVALVE = Ptr{Cvoid} +# typedef VkResult ( VKAPI_PTR * PFN_vkGetFramebufferTilePropertiesQCOM ) ( VkDevice device , VkFramebuffer framebuffer , uint32_t * pPropertiesCount , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetFramebufferTilePropertiesQCOM = Ptr{Cvoid} -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping) - ccall((:vkGetDescriptorSetLayoutHostMappingInfoVALVE, libvulkan), Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +# typedef VkResult ( VKAPI_PTR * PFN_vkGetDynamicRenderingTilePropertiesQCOM ) ( VkDevice device , const VkRenderingInfo * pRenderingInfo , VkTilePropertiesQCOM * pProperties ) +const PFN_vkGetDynamicRenderingTilePropertiesQCOM = Ptr{Cvoid} + +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties) + ccall((:vkGetFramebufferTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping, fptr) - ccall(fptr, Cvoid, (VkDevice, Ptr{VkDescriptorSetBindingReferenceVALVE}, Ptr{VkDescriptorSetLayoutHostMappingInfoVALVE}), device, pBindingReference, pHostMapping) +function vkGetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, VkFramebuffer, Ptr{UInt32}, Ptr{VkTilePropertiesQCOM}), device, framebuffer, pPropertiesCount, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData) - ccall((:vkGetDescriptorSetHostMappingVALVE, libvulkan), Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties) + ccall((:vkGetDynamicRenderingTilePropertiesQCOM, libvulkan), VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -function vkGetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData, fptr) - ccall(fptr, Cvoid, (VkDevice, VkDescriptorSet, Ptr{Ptr{Cvoid}}), device, descriptorSet, ppData) +function vkGetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties, fptr) + ccall(fptr, VkResult, (VkDevice, Ptr{VkRenderingInfo}, Ptr{VkTilePropertiesQCOM}), device, pRenderingInfo, pProperties) end -struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM +struct VkPhysicalDeviceAmigoProfilingFeaturesSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityMapOffset::VkBool32 + amigoProfiling::VkBool32 end -struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM +struct VkAmigoProfilingSubmitInfoSEC sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetGranularity::VkExtent2D + firstDrawTimestamp::UInt64 + swapBufferTimestamp::UInt64 end -struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM +struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM sType::VkStructureType pNext::Ptr{Cvoid} - fragmentDensityOffsetCount::UInt32 - pFragmentDensityOffsets::Ptr{VkOffset2D} + multiviewPerViewViewports::VkBool32 end -struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +@cenum VkRayTracingInvocationReorderModeNV::UInt32 begin + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 2147483647 +end + +struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV sType::VkStructureType pNext::Ptr{Cvoid} - linearColorAttachment::VkBool32 + rayTracingInvocationReorderReorderingHint::VkRayTracingInvocationReorderModeNV end -const VkAccelerationStructureKHR_T = Cvoid +struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV + sType::VkStructureType + pNext::Ptr{Cvoid} + rayTracingInvocationReorder::VkBool32 +end -const VkAccelerationStructureKHR = Ptr{VkAccelerationStructureKHR_T} +struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreBuiltins::VkBool32 +end -@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM + sType::VkStructureType + pNext::Ptr{Cvoid} + shaderCoreMask::UInt64 + shaderCoreCount::UInt32 + shaderWarpsPerCore::UInt32 end -@cenum VkAccelerationStructureBuildTypeKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647 +struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + pipelineLibraryGroupHandles::VkBool32 end -@cenum VkAccelerationStructureCompatibilityKHR::UInt32 begin - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647 +@cenum VkBuildAccelerationStructureModeKHR::UInt32 begin + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647 end @cenum VkAccelerationStructureCreateFlagBitsKHR::UInt32 begin VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 8 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647 end const VkAccelerationStructureCreateFlagsKHR = VkFlags -struct VkDeviceOrHostAddressKHR - data::NTuple{8, UInt8} -end - -function Base.getproperty(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol) - f === :deviceAddress && return Ptr{VkDeviceAddress}(x + 0) - f === :hostAddress && return Ptr{Ptr{Cvoid}}(x + 0) - return getfield(x, f) -end - -function Base.getproperty(x::VkDeviceOrHostAddressKHR, f::Symbol) - r = Ref{VkDeviceOrHostAddressKHR}(x) - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, r) - fptr = getproperty(ptr, f) - GC.@preserve r unsafe_load(fptr) -end - -function Base.setproperty!(x::Ptr{VkDeviceOrHostAddressKHR}, f::Symbol, v) - unsafe_store!(getproperty(x, f), v) -end - -const __U_VkDeviceOrHostAddressKHR = Union{VkDeviceAddress, Ptr{Cvoid}} - -function VkDeviceOrHostAddressKHR(val::__U_VkDeviceOrHostAddressKHR) - ref = Ref{VkDeviceOrHostAddressKHR}() - ptr = Base.unsafe_convert(Ptr{VkDeviceOrHostAddressKHR}, ref) - if val isa VkDeviceAddress - ptr.deviceAddress = val - elseif val isa Ptr{Cvoid} - ptr.hostAddress = val - end - ref[] -end - struct VkAccelerationStructureBuildRangeInfoKHR primitiveCount::UInt32 primitiveOffset::UInt32 @@ -15220,46 +19727,128 @@ function vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache ccall((:vkCreateRayTracingPipelinesKHR, libvulkan), VkResult, (VkDevice, VkDeferredOperationKHR, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) end -function vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) - ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +function vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, fptr) + ccall(fptr, VkResult, (VkDevice, VkDeferredOperationKHR, VkPipelineCache, UInt32, Ptr{VkRayTracingPipelineCreateInfoKHR}, Ptr{VkAllocationCallbacks}, Ptr{VkPipeline}), device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) +end + +function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) + ccall((:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) + ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) +end + +function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) + ccall((:vkCmdTraceRaysIndirectKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +end + +function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) + ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) + ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) + ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +end + +struct VkPhysicalDeviceRayQueryFeaturesKHR + sType::VkStructureType + pNext::Ptr{Cvoid} + rayQuery::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderFeaturesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + taskShader::VkBool32 + meshShader::VkBool32 + multiviewMeshShader::VkBool32 + primitiveFragmentShadingRateMeshShader::VkBool32 + meshShaderQueries::VkBool32 +end + +struct VkPhysicalDeviceMeshShaderPropertiesEXT + sType::VkStructureType + pNext::Ptr{Cvoid} + maxTaskWorkGroupTotalCount::UInt32 + maxTaskWorkGroupCount::NTuple{3, UInt32} + maxTaskWorkGroupInvocations::UInt32 + maxTaskWorkGroupSize::NTuple{3, UInt32} + maxTaskPayloadSize::UInt32 + maxTaskSharedMemorySize::UInt32 + maxTaskPayloadAndSharedMemorySize::UInt32 + maxMeshWorkGroupTotalCount::UInt32 + maxMeshWorkGroupCount::NTuple{3, UInt32} + maxMeshWorkGroupInvocations::UInt32 + maxMeshWorkGroupSize::NTuple{3, UInt32} + maxMeshSharedMemorySize::UInt32 + maxMeshPayloadAndSharedMemorySize::UInt32 + maxMeshOutputMemorySize::UInt32 + maxMeshPayloadAndOutputMemorySize::UInt32 + maxMeshOutputComponents::UInt32 + maxMeshOutputVertices::UInt32 + maxMeshOutputPrimitives::UInt32 + maxMeshOutputLayers::UInt32 + maxMeshMultiviewViewCount::UInt32 + meshOutputPerVertexGranularity::UInt32 + meshOutputPerPrimitiveGranularity::UInt32 + maxPreferredTaskWorkGroupInvocations::UInt32 + maxPreferredMeshWorkGroupInvocations::UInt32 + prefersLocalInvocationVertexOutput::VkBool32 + prefersLocalInvocationPrimitiveOutput::VkBool32 + prefersCompactVertexOutput::VkBool32 + prefersCompactPrimitiveOutput::VkBool32 +end + +struct VkDrawMeshTasksIndirectCommandEXT + groupCountX::UInt32 + groupCountY::UInt32 + groupCountZ::UInt32 end -function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData) - ccall((:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, libvulkan), VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksEXT ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) +const PFN_vkCmdDrawMeshTasksEXT = Ptr{Cvoid} -function vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, fptr) - ccall(fptr, VkResult, (VkDevice, VkPipeline, UInt32, UInt32, Csize_t, Ptr{Cvoid}), device, pipeline, firstGroup, groupCount, dataSize, pData) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectEXT = Ptr{Cvoid} -function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) - ccall((:vkCmdTraceRaysIndirectKHR, libvulkan), Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) -end +# typedef void ( VKAPI_PTR * PFN_vkCmdDrawMeshTasksIndirectCountEXT ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkBuffer countBuffer , VkDeviceSize countBufferOffset , uint32_t maxDrawCount , uint32_t stride ) +const PFN_vkCmdDrawMeshTasksIndirectCountEXT = Ptr{Cvoid} -function vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, Ptr{VkStridedDeviceAddressRegionKHR}, VkDeviceAddress), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ) + ccall((:vkCmdDrawMeshTasksEXT, libvulkan), Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader) - ccall((:vkGetRayTracingShaderGroupStackSizeKHR, libvulkan), VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +function vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, UInt32, UInt32, UInt32), commandBuffer, groupCountX, groupCountY, groupCountZ) end -function vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, fptr) - ccall(fptr, VkDeviceSize, (VkDevice, VkPipeline, UInt32, VkShaderGroupShaderKHR), device, pipeline, group, groupShader) +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize) - ccall((:vkCmdSetRayTracingPipelineStackSizeKHR, libvulkan), Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +function vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, drawCount, stride) end -function vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, fptr) - ccall(fptr, Cvoid, (VkCommandBuffer, UInt32), commandBuffer, pipelineStackSize) +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + ccall((:vkCmdDrawMeshTasksIndirectCountEXT, libvulkan), Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end -struct VkPhysicalDeviceRayQueryFeaturesKHR - sType::VkStructureType - pNext::Ptr{Cvoid} - rayQuery::VkBool32 +function vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, fptr) + ccall(fptr, Cvoid, (VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, UInt32, UInt32), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) end const VkWin32SurfaceCreateFlagsKHR = VkFlags @@ -15567,6 +20156,28 @@ function vkGetDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes, f ccall(fptr, VkResult, (VkDevice, Ptr{VkPhysicalDeviceSurfaceInfo2KHR}, Ptr{VkDeviceGroupPresentModeFlagsKHR}), device, pSurfaceInfo, pModes) end +# typedef VkResult ( VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , VkDisplayKHR display ) +const PFN_vkAcquireWinrtDisplayNV = Ptr{Cvoid} + +# typedef VkResult ( VKAPI_PTR * PFN_vkGetWinrtDisplayNV ) ( VkPhysicalDevice physicalDevice , uint32_t deviceRelativeId , VkDisplayKHR * pDisplay ) +const PFN_vkGetWinrtDisplayNV = Ptr{Cvoid} + +function vkAcquireWinrtDisplayNV(physicalDevice, display) + ccall((:vkAcquireWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end + +function vkAcquireWinrtDisplayNV(physicalDevice, display, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, VkDisplayKHR), physicalDevice, display) +end + +function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay) + ccall((:vkGetWinrtDisplayNV, libvulkan), VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +end + +function vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, fptr) + ccall(fptr, VkResult, (VkPhysicalDevice, UInt32, Ptr{VkDisplayKHR}), physicalDevice, deviceRelativeId, pDisplay) +end + const VULKAN_H_ = 1 const VULKAN_CORE_H_ = 1 @@ -15579,12 +20190,10 @@ const VK_USE_64_BIT_PTR_DEFINES = 1 const VK_API_VERSION_1_0 = VK_MAKE_API_VERSION(0, 1, 0, 0) -const VK_HEADER_VERSION = 207 +const VK_HEADER_VERSION = 240 const VK_HEADER_VERSION_COMPLETE = VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -const VK_UUID_SIZE = Cuint(16) - const VK_ATTACHMENT_UNUSED = ~(Cuint(0)) const VK_FALSE = Cuint(0) @@ -15605,14 +20214,16 @@ const VK_WHOLE_SIZE = ~(Culonglong(0)) const VK_MAX_MEMORY_TYPES = Cuint(32) -const VK_MAX_MEMORY_HEAPS = Cuint(16) - const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = Cuint(256) +const VK_UUID_SIZE = Cuint(16) + const VK_MAX_EXTENSION_NAME_SIZE = Cuint(256) const VK_MAX_DESCRIPTION_SIZE = Cuint(256) +const VK_MAX_MEMORY_HEAPS = Cuint(16) + const VK_VERSION_1_1 = 1 const VK_API_VERSION_1_1 = VK_MAKE_API_VERSION(0, 1, 1, 0) @@ -15665,6 +20276,54 @@ const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3 const VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge" +const VK_KHR_video_queue = 1 + +const VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue" + +const VK_KHR_video_decode_queue = 1 + +const VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue" + +const VK_KHR_video_decode_h264 = 1 + +const VULKAN_VIDEO_CODEC_H264STD_H_ = 1 + +const vulkan_video_codec_h264std = 1 + +const STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H264_MAX_NUM_LIST_REF = 32 + +const STD_VIDEO_H264_MAX_CHROMA_PLANES = 2 + +const VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1 + +const vulkan_video_codec_h264std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode" + +const VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 8 + +const VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264" + const VK_KHR_dynamic_rendering = 1 const VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 @@ -15935,6 +20594,72 @@ const VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1 const VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock" +const VK_KHR_video_decode_h265 = 1 + +const VULKAN_VIDEO_CODEC_H265STD_H_ = 1 + +const vulkan_video_codec_h265std = 1 + +const STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7 + +const STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6 + +const STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2 + +const STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3 + +const STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128 + +const STD_VIDEO_H265_MAX_DPB_SIZE = 16 + +const STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19 + +const STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21 + +const STD_VIDEO_H265_MAX_NUM_LIST_REF = 15 + +const STD_VIDEO_H265_MAX_CHROMA_PLANES = 2 + +const STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64 + +const STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16 + +const STD_VIDEO_H265_MAX_DELTA_POC = 48 + +const VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1 + +const vulkan_video_codec_h265std_decode = 1 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +const STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 + +const VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode" + +const VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 7 + +const VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265" + const VK_KHR_global_priority = 1 const VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = Cuint(16) @@ -16073,6 +20798,12 @@ const VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1 const VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2" +const VK_KHR_fragment_shader_barycentric = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1 + +const VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric" + const VK_KHR_shader_subgroup_uniform_control_flow = 1 const VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1 @@ -16099,10 +20830,22 @@ const VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" const VK_KHR_format_feature_flags2 = 1 -const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1 +const VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 const VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2" +const VK_KHR_ray_tracing_maintenance1 = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1" + +const VK_KHR_portability_enumeration = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1 + +const VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration" + const VK_KHR_maintenance4 = 1 const VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2 @@ -16283,6 +21026,12 @@ const VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1 const VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode" +const VK_EXT_pipeline_robustness = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness" + const VK_EXT_conditional_rendering = 1 const VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 @@ -16825,6 +21574,18 @@ const VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1 const VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2" +const VK_EXT_surface_maintenance1 = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1" + +const VK_EXT_swapchain_maintenance1 = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1 + +const VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" + const VK_EXT_shader_demote_to_helper_invocation = 1 const VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1 @@ -16851,7 +21612,7 @@ const VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignm const VK_QCOM_render_pass_transform = 1 -const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 +const VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 const VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform" @@ -16885,6 +21646,12 @@ const VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1 const VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type" +const VK_NV_present_barrier = 1 + +const VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1 + +const VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier" + const VK_EXT_private_data = 1 const VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1 @@ -16899,7 +21666,7 @@ const VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_c const VK_NV_device_diagnostics_config = 1 -const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1 +const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 const VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config" @@ -16909,6 +21676,24 @@ const VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 const VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" +const VK_EXT_descriptor_buffer = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 + +const VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" + +const VK_EXT_graphics_pipeline_library = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 + +const VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" + +const VK_AMD_shader_early_and_late_fragment_tests = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1 + +const VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests" + const VK_NV_fragment_shading_rate_enums = 1 const VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 @@ -16945,12 +21730,30 @@ const VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1 const VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness" +const VK_EXT_image_compression_control = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" + +const VK_EXT_attachment_feedback_loop_layout = 1 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2 + +const VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout" + const VK_EXT_4444_formats = 1 const VK_EXT_4444_FORMATS_SPEC_VERSION = 1 const VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats" +const VK_EXT_device_fault = 1 + +const VK_EXT_DEVICE_FAULT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" + const VK_ARM_rasterization_order_attachment_access = 1 const VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 @@ -16963,12 +21766,6 @@ const VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1 const VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats" -const VK_NV_acquire_winrt_display = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 - -const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" - const VK_VALVE_mutable_descriptor_type = 1 const VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 @@ -16987,6 +21784,12 @@ const VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1 const VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm" +const VK_EXT_device_address_binding_report = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1 + +const VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report" + const VK_EXT_depth_clip_control = 1 const VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1 @@ -17017,6 +21820,18 @@ const VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1 const VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma" +const VK_EXT_pipeline_properties = 1 + +const VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" + +const VK_EXT_multisampled_render_to_single_sampled = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1 + +const VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled" + const VK_EXT_extended_dynamic_state2 = 1 const VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1 @@ -17029,6 +21844,12 @@ const VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1 const VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable" +const VK_EXT_primitives_generated_query = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1 + +const VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query" + const VK_EXT_global_priority_query = 1 const VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1 @@ -17049,12 +21870,30 @@ const VK_EXT_MULTI_DRAW_SPEC_VERSION = 1 const VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw" +const VK_EXT_image_2d_view_of_3d = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d" + +const VK_EXT_opacity_micromap = 1 + +const VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2 + +const VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap" + const VK_EXT_load_store_op_none = 1 const VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1 const VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none" +const VK_HUAWEI_cluster_culling_shader = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 + +const VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" + const VK_EXT_border_color_swizzle = 1 const VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1 @@ -17073,12 +21912,36 @@ const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1 const VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping" +const VK_EXT_depth_clamp_zero_one = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1 + +const VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one" + +const VK_EXT_non_seamless_cube_map = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1 + +const VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map" + const VK_QCOM_fragment_density_map_offset = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1 const VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset" +const VK_NV_copy_memory_indirect = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1 + +const VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect" + +const VK_NV_memory_decompression = 1 + +const VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 + +const VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" + const VK_NV_linear_color_attachment = 1 const VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1 @@ -17087,10 +21950,114 @@ const VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachm const VK_GOOGLE_surfaceless_query = 1 -const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1 +const VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2 const VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query" +const VK_EXT_image_compression_control_swapchain = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1 + +const VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain" + +const VK_QCOM_image_processing = 1 + +const VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1 + +const VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing" + +const VK_EXT_extended_dynamic_state3 = 1 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 + +const VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" + +const VK_EXT_subpass_merge_feedback = 1 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 + +const VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback" + +const VK_LUNARG_direct_driver_loading = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1 + +const VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading" + +const VK_EXT_shader_module_identifier = 1 + +const VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = Cuint(32) + +const VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1 + +const VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier" + +const VK_EXT_rasterization_order_attachment_access = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access" + +const VK_NV_optical_flow = 1 + +const VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1 + +const VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" + +const VK_EXT_legacy_dithering = 1 + +const VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 1 + +const VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering" + +const VK_EXT_pipeline_protected_access = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access" + +const VK_QCOM_tile_properties = 1 + +const VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1 + +const VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties" + +const VK_SEC_amigo_profiling = 1 + +const VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1 + +const VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling" + +const VK_QCOM_multiview_per_view_viewports = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1 + +const VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports" + +const VK_NV_ray_tracing_invocation_reorder = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1 + +const VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder" + +const VK_EXT_mutable_descriptor_type = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1 + +const VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type" + +const VK_ARM_shader_core_builtins = 1 + +const VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2 + +const VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins" + +const VK_EXT_pipeline_library_group_handles = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1 + +const VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles" + const VK_KHR_acceleration_structure = 1 const VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 @@ -17109,6 +22076,12 @@ const VK_KHR_RAY_QUERY_SPEC_VERSION = 1 const VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query" +const VK_EXT_mesh_shader = 1 + +const VK_EXT_MESH_SHADER_SPEC_VERSION = 1 + +const VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader" + const VULKAN_WIN32_H_ = 1 const VK_KHR_win32_surface = 1 @@ -17159,3 +22132,9 @@ const VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION = 4 const VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME = "VK_EXT_full_screen_exclusive" +const VK_NV_acquire_winrt_display = 1 + +const VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1 + +const VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display" + diff --git a/src/LibVulkan.jl b/src/LibVulkan.jl index 5152a66..5b0484e 100644 --- a/src/LibVulkan.jl +++ b/src/LibVulkan.jl @@ -37,6 +37,8 @@ VK_VERSION_MAJOR(version) = Cuint(version) >> 22 VK_VERSION_MINOR(version) = (Cuint(version) >> 12) & 0x3ff VK_VERSION_PATCH(version) = Cuint(version) & 0xfff +VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) = VK_MAKE_VERSION(major, minor, patch) + const IS_LIBC_MUSL = occursin("musl", Base.BUILD_TRIPLET) if Sys.isapple() && Sys.ARCH === :aarch64 include("../lib/aarch64-apple-darwin20.jl") @@ -71,7 +73,7 @@ else end # exports -const PREFIXES = ["VK_", "Vk", "vk"] +const PREFIXES = ["VK_", "Vk", "vk", "StdVideo", "STD_VIDEO"] for name in names(@__MODULE__; all = true), prefix in PREFIXES if startswith(string(name), prefix) @eval export $name